2016-05-30 7 views
0

möchte das ausgewählte Radio aus und Radio-Gruppe und sobald das Fragment wird wieder gestartet, zuvor ausgewählten Radio sollte ausgewählt werden, ich versuchte, aber nicht in der Lage, es zu bekommen.Put und Get Selected Radio-Taste von Radio-Gruppe mit SharedPreferences

Ich muss die ausgewählte Position nur bei Klick auf die Schaltfläche speichern.

Dies ist Code, die ich verwende:

radiogender=(RadioGroup)rootView.findViewById(R.id.radioGroup1); 



     radiogender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 


       // find which radio button is selected 
       if(checkedId == R.id.radioButton1) { 
        Toast.makeText(getActivity(), "You: Dude !!!", 
          Toast.LENGTH_SHORT).show(); 

       } else if(checkedId == R.id.radioButton2) { 
        Toast.makeText(getActivity(), "You: Babe !!!", 
          Toast.LENGTH_SHORT).show(); 
       } 
      } 

     }); 
+0

Sie müssen etwas in Einstellungen speichern und dann verwenden, um überprüft zu setzen. Dein Code macht so etwas nicht. Hast du versucht, Präferenzen zu verwenden? – Aradhna

+0

Ich hatte viele Möglichkeiten ausprobiert, aber kann es nicht herausfinden, ein Beispiel-Code wird sehr hilfreich sein. –

Antwort

0

Versuchen Sie so etwas wie dieses

radiogender=(RadioGroup)rootView.findViewById(R.id.radioGroup1); 
    radioButton1=(RadioButton) rootView.findViewById(R.id.radioButton1); 
    radioButton2=(RadioButton) rootView.findViewById(R.id.radioButton2); 

    SharedPreferences myPrefs=context.getSharedPreferences("general",context.MODE_PRIVATE); //you can give any name in place of general to your preferences 

      radiogender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

       @Override 
       public void onCheckedChanged(RadioGroup group, int checkedId) { 


        // find which radio button is selected 
        if(checkedId == R.id.radioButton1) { 
         Toast.makeText(getActivity(), "You: Dude !!!", 
           Toast.LENGTH_SHORT).show(); 

         //save in preferences 
         myPrefs.edit().putInt("selected",1).commint(); 

        } else if(checkedId == R.id.radioButton2) { 
         Toast.makeText(getActivity(), "You: Babe !!!", 
           Toast.LENGTH_SHORT).show(); 
         //save in preferences 

         myPrefs.edit().putInt("selected",2).commit(); 
        } 
       } 

      }); 

//check if there is any value in preferences and set accordingly 

int s=myPrefs.getInt("selected",0); //will return 0 when nothing is stored 
if(s==1){ 
    radioButton1.setChecked(true); 
} else if(s==2){ 
    radioButton2.setChecked(true); 
} 

Um einen Wert in den Einstellungen hinzufügen, können Sie zuerst die edit()-Tag verwenden und dann putInt oder putString verwenden, etc. um den Einstellungen einen Mehrwert zu verleihen.

Beispiel putInt("selected",1); Hier ist der 'ausgewählte' Schlüssel oder Name, den Sie angeben, damit Sie den Wert mit diesem Schlüssel abrufen können. Und "1" ist der Wert, der für diesen Schlüssel gespeichert wird.

Verwenden Sie dann commit(), um den Wert in den Einstellungen zu speichern. Wenn Sie einen Wert abrufen müssen, verwenden Sie getInt oder getString usw., um den Wert abzurufen.

Beispiel getInt("selected",0);. Hier ist selected der Schlüssel, dessen Wert Sie abrufen möchten. 0 ist der Standardwert, der angegeben wird, wenn unter dem von Ihnen angegebenen Schlüssel kein Wert vorhanden ist.

Hoffe, das hilft :)

Verwandte Themen