sharedPreferences radioButton

  • Antworten:13
Gelöschter Account
  • Forum-Beiträge: 44

09.10.2014, 10:33:55 via Website

funktioniert bei mir nicht

SharedPreferences pref = getSharedPreferences("radiobutton", 0);
    radioButton.setChecked(pref.getBoolean("questionA", false));
    radioButton2.setChecked(pref.getBoolean("questionB", false));
    radioButton3.setChecked(pref.getBoolean("questionC", false));
    SharedPreferences.Editor editor = pref.edit();
    editor.putBoolean("questionA", radioButton.isChecked());
    editor.putBoolean("questionB", radioButton2.isChecked());
    editor.putBoolean("questionC", radioButton3.isChecked());
    editor.apply();

alles mögliche schon versucht

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

09.10.2014, 16:30:52 via App

Hallo homerdj,
mit "funktioniert nicht" kann niemand etwas anfangen. Deswegen bitte ich dich dein Vorhaben und dein Problem genauer zu erklären.

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 44

09.10.2014, 16:59:31 via Website

ich möchte gern das die radioButtons- status, welcher von den dreien (radioButtons) gewählt ist speichert und beim starten der Activity wieder ausliest und den richtigen Button dann setzt.

Antworten
Gelöschter Account
  • Forum-Beiträge: 44

10.10.2014, 08:47:16 via Website

hab jetzt das mal probiert, geht aber leider auch nicht:

SharedPreferences pref = getSharedPreferences("radiobutton", 0);

    radioErgebnisGruppe.check(pref.getInt("select",0));

    SharedPreferences.Editor editor = pref.edit();
    editor.putInt("select", radioErgebnisGruppe.getCheckedRadioButtonId());

    editor.apply();

Antworten
Fabian Simon
  • Forum-Beiträge: 359

10.10.2014, 09:29:58 via Website

Teste doch das ganze mal im Debugger.
Um Aktive die zeilen schritt für schritt durchzugehen....

Antworten
Stefan W
  • Forum-Beiträge: 424

10.10.2014, 09:58:28 via App

Wird das ganze nur einmal aufgerufen? Oder auch mittels z.B. einem OnClickListener?

Antworten
Gelöschter Account
  • Forum-Beiträge: 44

10.10.2014, 10:01:11 via Website

immer beim start der Activity

Antworten
Stefan W
  • Forum-Beiträge: 424

10.10.2014, 12:57:23 via App

Na, da hama das Problem.

Du musst, die sharedPreferences aktualisieren, wenn auf einen RadioButton geklickt wird, sonst werden die Änderungen ja nicht gespeichert. Das machst du am besten mit einem OnClickListener ;)

LG,
Stefan

Antworten
Gelöschter Account
  • Forum-Beiträge: 44

10.10.2014, 16:40:51 via Website

welcher code ist dann richtig den ich nehme? den ersten oder zweiten?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.10.2014, 16:46:31 via Website

Eine kombination aus beiden wäre gut

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Stefan W
  • Forum-Beiträge: 424

10.10.2014, 17:06:53 via Website

So, in etwa :

 final SharedPreferences pref = getSharedPreferences("radiobutton", 0);
 radioButton.setChecked(pref.getBoolean("questionA", false));

radioButton.setOnClickListener(new OnClickListener()
{
    @Override
     public void onClick(View view)
     {
        SharedPreferences.Editor editor = pref.edit();
        editor.putBoolean("questionA", !pref.getBoolean("questionA", false);
        editor.apply(); 
      }
 });

— geändert am 10.10.2014, 17:07:54

Antworten
Gelöschter Account
  • Forum-Beiträge: 44

10.10.2014, 18:16:06 via Website

Super. Danke. hat funktioniert:)(cool) ihr seid Top

Antworten
Gelöschter Account
  • Forum-Beiträge: 44

11.10.2014, 08:03:00 via Website

muss nochmal eröffnen. klappt doch noch nicht. hat 2 Klicks geklappt dann nicht mehr

Antworten
Stefan W
  • Forum-Beiträge: 424

11.10.2014, 09:43:46 via Website

Weil ? Wird es nicht richtig gespeichert ? Kommt ein Fehler ?

Du kannst es auch so in etwa mal probieren :

public void setQuestionA(boolean b)
{
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(c);
    Editor editor = sharedPreferences.edit();
    editor.putBoolean("questionA", b);
    editor.apply();
}

public boolean getQuestionA()
{
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(c);
    return sharedPreferences.getBoolean("questionA", false);
}

radioButton.setOnClickListener(new OnClickListener()
{
    @Override
     public void onClick(View view)
     {
         setQuestionA(!getQuestionA());
      }
 });

radioButton.setChecked(getQuestionA());

Antworten