1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. no1Ltan, 01.11.2018 #1
    no1Ltan

    no1Ltan Threadstarter Android-Hilfe.de Mitglied

    Hallo Leute,

    die Beispiel-App besteht aus nur 2 Activites.
    Activity 1 ruft mittels Button-Klick die 2. Activity auf, die wiederum aus vielen Farb-Buttons besteht.
    Beim Klick auf einen Farb-Button wird die 2. Activity geschlossen.

    Mein Ziel ist es, dass sich die 2. Activity immer den zuletzt geklickten Button merkt und ihn auf Invisible setzt.
    (Ich verwende absichtlich nicht GONE.)
    Dadurch soll unterbunden werden, dass der User den gleichen Button 2x nacheinander klickt.

    Eigentlich hätte ich es so hier gemacht:
    Alle Buttons greifen auf eine Methode zu, die die Werte speichert.
    Farbwert und Name des Buttons in die SharedPreferences.
    Beim Laden der Activity werden die Werte aus der SharedPreferences geladen.

    Leider gibt es 2 Probleme:
    Problem 1)
    Der Editor der SharedPreferences akzeptiert keine Views.
    Das heißt, ich kann die Buttons nicht als View-Elemente speichern.
    (Ist auch nachvollziehbar.)

    Problem 2)
    Wenn ich die Buttonnamen als String speichere, kann ich beim Laden der Activity nicht:
    buttonname.setVisibility(View.INVISIBLE); machen.
    Wie auch - ist ja ein String.
    Casting/Casten auf Button geht sicherlich auch nicht.

    Globale Variable: Button button
    Dann button+buttonColor.setVisibility(View.INVISIBLE); geht auch nicht.
    (Das +buttonColor soll als Platzhalter dienen, sowie z.B. SharedPreferences prefsMode = getSharedPreferences("MY_SHARED_PREF_"+mode, MODE_PRIVATE);)

    Eine Möglichkeit, die funktioniert:
    Ich speichere die Buttonnamen als String und führe if-Abfragen beim Laden der Activity durch.
    Code:
       if (buttonColor.equals("buttonWhite"))
            {
                buttonWhite.setVisibility(View.INVISIBLE);
            }
            if (buttonColor.equals("buttonBlue"))
            {
                buttonBlue.setVisibility(View.INVISIBLE);
            }
            if (buttonColor.equals("buttonGreen"))
            {
                buttonGreen.setVisibility(View.INVISIBLE);
            }
    
    Ja, es funktioniert, aber ich würde mich über eine elegantere Methode freuen.


    Habt ihr eine Idee?

    Danke für jede Hilfe!

    Grüße
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Button, der ein Menü öffnet? Android App Entwicklung 08.08.2018
AlertDialog in Landscape ohne Button Android App Entwicklung 05.08.2018
Alertdialog mit Button erweitern Android App Entwicklung 02.02.2018
Du betrachtest das Thema "Zuletzt geklickten Button automatisch auf Invisible setzen" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.