Button behält Werte nicht

  • 2 Antworten
  • Letztes Antwortdatum
B

bappi

Neues Mitglied
0
Auf meinem main-Layout befinden sich 2 Buttons nebeneinander.

Mit Klick auf den ersten Button wechsel ich auf ein 2.Layout, auf dem sich mehrere Buttons befinden. Durch das Anklicken eines Buttons soll der tag und Hintergrundbild vom angeklickten Button für den Button auf dem main-Layout übernommen werden. Das funktioniert auch soweit.

Klicke ich jetzt allerdings auf meinen zweiten Button auf meinem main-Layout um für diesen ebenfalls von einem anderen Layout tag und Hintergrundbild zu übernehmen, verschwinden die Werte des ersten Buttons. Ich benötige jedoch für beide Buttons Werte.

Der Code sieht folgendermaßen aus(karte1 und karte2 sind die Buttons in meinem main-layout):
Code:
    @SuppressLint("NewApi")
    public void button1(View v){
        String key = (String) v.getTag();
        Drawable meinButton2 = v.getBackground();
        setContentView(R.layout.activity_main);
        meinButton = (Button) findViewById(R.id.karte1);
        meinButton.setTag(key);
        meinButton.setBackground(meinButton2);
        }
    
        
    @SuppressLint("NewApi")
    public void button2(View v){
        String key1 = (String) v.getTag();
        Drawable meinButton3 = v.getBackground();
        setContentView(R.layout.activity_main);
        meinButton1 = (Button) findViewById(R.id.karte2);
        meinButton1.setTag(key1);
        meinButton1.setBackground(meinButton3);
        }
Jemand eine Idee was ich vergessen habe?
Muss dazu sagen, dass ich noch relativ neu bin in Bezug aufs Programmieren von Apps.
 
Ich habe mittlerweile herausgefunden, dass es daran liegt, dass ich mein Layout über setContentView wechsel.
Leider habe ich immer noch nicht herausgefunden wie ich auf mein 2. Layoutwechseln kann und die vorab eingetragenen Werte im EditText-Feld erhalten bleiben....
Vielleicht zur Veranschaulichung mal ne Skizze zu meinem Vorhaben im Anhang.
e8yw-j-1f0e.jpg
Setze ich die Buttons 3-6 mit auf das Layout der main_activity.xml funktioniert alles ohne Probleme.
 

Anhänge

  • layouts.jpg
    layouts.jpg
    50,7 KB · Aufrufe: 217
Das Problem hat nicht viel mit der App Entwicklung zu tuen, sowas ist ein allgemeines Programmierer Problem.
Die Werte deiner Buttons, bzw. was auch immer du überall im Programm haben willst, braucht einen Zentralen speicher ort. In manchen sprachen redet man auch von "global". Das ist jetzt nicht best practice! du kannst in deiner mainActivity variablen anlegen die alle Variablen der buttons enthalten. Du musst diese dann nur füllen und immer wieder abrufen. Gehe nicht den weg Button values abzufragen aus Forms die mal geladen waren oder noch nicht geladen wurden.

Das ist jetzt nur ein Strategie tip ohne code liefern zu können.
 
Zurück
Oben Unten