0

カスタムラジオボタンに取り組んでいます。(options.xmlで定義されているように)正常に動作しますが、options.xmlからmain.xmlに切り替えると、デフォルトになり、強調表示されなくなります。押すまではデフォルトに戻らないように動作するはずです。これがradiobutton_selector.xmlです。

        <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>

これらをoptions.xmlで使用して、ラジオボタン設定を呼び出しています。

        <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>

問題を理解するのを手伝ってください。前もって感謝します !!!!!

4

1 に答える 1

2

あなたはあなたのためにこのようにすることができますRadioGroup。選択したラジオボタンを保存する必要があります。そのため、以下のように1つの変数を使用できます。

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;
                    }
                });

さて、あなたの活動の履歴書をホエーしてください。あなたは以下のように1つの条件をチェックすることができます。以下のコードのようにSharedPrefrenceから値を取得します。

   //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);
  }

以下の手順でSharedPreferencesを使用できます

   public static final String PREFS_NAME = "MyPrefsFile";
   SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
于 2012-04-14T08:34:05.843 に答える