2012-04-14 17 views
0

Ich arbeite an benutzerdefinierten Optionsfeld. Es funktioniert gut (wie es in options.xml definiert ist), aber wenn ich von options.xml zu main.xml umschalte, wird es Standard, bedeutet, dass es nicht mehr markiert ist. es sollte so arbeiten, bis ich es drücken sollte es hier nicht auf die Standard drehen .. ist radiobutton_selector.xmlBenutzerdefiniertes Optionsfeld

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:drawable="@drawable/radio_down" android:state_checked="true"/> 
     <item android:drawable="@drawable/radio" android:state_checked="false"/> 
     </selector> 

ich bin diese in options.xml mit den Einstellungen Optionsfeld aufzurufen.

 <RadioGroup 
      android:id="@+id/sound" 
      android:layout_width="150dp" 
      android:layout_height="100dp" 
      android:layout_gravity="right" 
      android:layout_marginRight="0dp" 
      android:layout_marginTop="50dp" 
      android:orientation="vertical" 
      android:padding="0dp" > 

      <RadioButton 
       android:layout_width="100dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:button="@drawable/radiobutton_selector" 
       android:id="@+id/on" 
       /> 

      <RadioButton 
       android:layout_width="100dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:button="@drawable/radiobutton_selector" 
       android:id="@+id/off" 
       /> 
     </RadioGroup> 

Bitte helfen Sie mir, das Problem herauszufinden. Danke im Voraus !!!!!

+0

verwenden, wenn ich von options.xml wechseln main.xml, es stellt sich standardmäßig? –

+0

haben Sie bei boolean für RadioButton pflegen ist Überprüfen Sie wahr oder falsch. – Herry

+0

@ Samir Mangroliya Ich benutze diese in options.xml, wenn ich den Radio-Button gedrückt habe, funktioniert es gut, dann gehe ich zu main.xml und dann wieder zurück zu options.xml, es funktioniert nicht (bleibe nicht gedrückt) – Numair

Antwort

2

Sie können dies für Ihre RadioGroup tun. Sie müssen speichern, welche Radio-Taste Sie ausgewählt haben, für die Sie eine Variable wie unten verwenden können.

int check_radio=-1; 
public static final int RADIO_BUTTON_ON=1; 
public static final int RADIO_BUTTON_OFF=2; 

     mRadioGroup 
       .setOnCheckedChangeListener(new OnCheckedChangeListener() { 

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

         switch(checkedId){ 

              case R.id.on: 
              //Radio Button on is True 
              check_radio=RADIO_BUTTON_ON; 
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
        SharedPreferences.Editor editor = settings.edit(); 
         editor.putInt("RadioButton", RADIO_BUTTON_ON); 
        // Commit the edits! 
        editor.commit(); 
              break; 
              case R.id.off: 
              //Radio Button off is True 
              check_radio=RADIO_BUTTON_OFF; 
         SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
        SharedPreferences.Editor editor = settings.edit(); 
         editor.putInt("RadioButton", RADIO_BUTTON_OFF); 
        // Commit the edits! 
        editor.commit(); 
              break; 
        } 
       }); 

Jetzt Molke Ihre Aktivität ist Lebenslauf einen Zustand wie unten überprüfen. Get Value von SharedPrefrence Wie unter Code;

//If you have save your value in SharedPrefrence it will return your stored int value. 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    check_radio = settings.getInt("RadioButton", -1); 


    if(check_radio==RADIO_BUTTON_ON){ 
    mRadioOn.setChecked(true); 
    }else if(check_radio==RADIO_BUTTON_OFF){ 
    mRadioOff.setChecked(true); 
    } 

können Sie SharedPreferences von unten Schritt

public static final String PREFS_NAME = "MyPrefsFile"; 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
+0

... kein Mann ... es funktioniert nicht ... dasselbe Ergebnis ... Sitzung zerstört – Numair

+0

bitte verweisen Sie mich für SharedPreference .. – Numair

+0

können Sie Entwickler-Website für 'SharedPreference' von diesem Link https: // Entwickler verweisen. android.com/guide/topics/data/data-storage.html.i fügt auch meine Antwort hinzu.Wenn Sie den Optionsschalter aktivieren, wird auch der Status in 'SharedPreference' gespeichert, wie ich es in der Antwort mache. – Herry