Zuletzt geklickten Button automatisch auf Invisible setzen

N

no1Ltan

Fortgeschrittenes Mitglied
Threadstarter
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
 
Oben Unten