bobcat22
Goto Top

Multible Switch Buttons zur übernahme in Kind Activity

Guten Tag,

ich versuche gerade bei einem Android Projekt den Status von zwei Switch Schaltern beim betätigen des aufruf Buttons für eine zweite Activity mit zu übergeben.
Bei Google finde ich kein Passendes Beispiel, die meisten dort beschränken sich auf das Switch gesteuerte verändern von nur einer Activity.

Dort habe ich aber gelesen das mit shared preferences das ganze machbar sein sollte, ich muss aber zugeben das ich mich dafür bisher vermutlich zu blöd angestellt habe.

Mein Hauptproblem ist das ich aus dem EventListener dem ich eine eigene Methode gegeben habe

private void swicht1_ist_an(){

Switch switch1 = (Switch) findViewById(R.id.partyModus);
switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
------------------
}
});

}

natürlich keine Veränderung an Instanz variablen durchführen kann, die ich dann ggf. mit .getExtra() übergeben könnte.

Ich bin dankbar für jeden Tipp und entschuldige mich falls das hier etwas fahrig klingt... sitz schon 12 Stunden dran und brauch mal ne Pause face-smile

Gruß

bob

Content-Key: 315244

Url: https://administrator.de/contentid/315244

Printed on: May 5, 2024 at 00:05 o'clock

Member: tomolpi
Solution tomolpi Sep 14, 2016 updated at 16:12:38 (UTC)
Goto Top
Hi ob,

ich löse das in meinen Apps mit den "Shared Preferences". In deiner Activity holst du dir den Status, schreibst ihn in die Einstellungen rein und holst ihn dann nach dem Wechsel wieder in der onCreate. Wenn du ein Beispiel brauchst sag Bescheid face-smile

Grüsse,

tomolpi

EDIT: okay, hier die Preferences:

extende CompundButton.OnCheckedChangeListener
in onCreate:
SharedPreferences prefs = getSharedPreferences("namederpreferences", Context.MODE_PRIVATE);  
//finde die switches, gib ihnen namen
switch1.setOnCheckedChangeListener(this);

@Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        SharedPreferences prefs = getSharedPreferences("namederpreferences", Context.MODE_PRIVATE);  
        SharedPreferences.Editor editor = prefs.edit();
        if (isChecked) {
           //tue noch etwas z.B einen Toast zeigen
            editor.putBoolean("switch1", true);  
            editor.apply();

        } else {
            //tue nochetwas wie z.B einen Toast zeigen
            editor.putBoolean("switch1", false);  
            editor.apply();
        }
    }

nächste Activity:

SharedPreferences prefs = getSharedPreferences("namederpreferences", Context.MODE_PRIVATE);  
prefs.getBoolean("switch1", true");  
Member: bobcat22
bobcat22 Sep 15, 2016 at 13:55:18 (UTC)
Goto Top
Vielen Vielen Dank für die schnelle Antwort. Ich hab schon versucht deine äußerst schlüssige Lösung anzuwenden bin aber noch nicht ganz dahinter gestiegen.

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Switch switch1 = (Switch) findViewById(R.id.switch_eins);
        Intent zwei_open =  new Intent(this, darstellung_zwei.class);
        SharedPreferences prefs = getSharedPreferences("3xaa_PREFS", Context.MODE_PRIVATE);  
    }


    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        SharedPreferences prefs = getSharedPreferences("3xaa_PREFS", Context.MODE_PRIVATE);  
        SharedPreferences.Editor editor = prefs.edit();
        if (isChecked) {
            editor.putBoolean("switch1", true);  
            editor.apply();

        } else {
             editor.putBoolean("switch1", false);  
            editor.apply();
        }
    }

}


Meine Main Activity extendet (schreibt man das so face-smile?) bereits AppCompatActivity. Wenn ich die nicht extende sonder neu Instanziiere und die von dir vorgeschlagene CompoundButton.OnCheckedChangeListener erweitere bekomm ich im IDE die Meldung das kein Interface hier erwartet wird.

Darf ich dich/euch vieleicht nochmal um einen Rat bitten?

Danke schon im voraus

bob
Member: tomolpi
tomolpi Sep 15, 2016 at 15:31:34 (UTC)
Goto Top
Hallo Bob,

Schande über mich - es muss natürlich
implements CompoundButton.OnCheckedChangeListener
heissen...

Dann muss es gehen.

Tut mir leid face-confused

tomolpi
Member: bobcat22
bobcat22 Sep 16, 2016 at 10:28:22 (UTC)
Goto Top
Hat super geklappt!
Vielen dank für deine Hilfe und ein schönes WE

bob