0

私のアプリケーションには 3 つのラジオ ボタンがあります。アプリケーションを再度開くと、前にチェックしたラジオ ボタンがまだチェックされます。可能ですか?

4

3 に答える 3

2

OnCreate() で

SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
int savedRadioIndex = sharedPreferences.getInt(KEY_SAVED_RADIO_BUTTON_INDEX, 0);
RadioButton savedCheckedRadioButton = (RadioButton)radioGroup.getChildAt(savedRadioIndex);
savedCheckedRadioButton.setChecked(true);

ラジオボタンの OnCheckedChangeListener で、「SavePreferences」のようなメソッドを呼び出します

SavePreferences("SAVED_RADIO_BUTTON_INDEX", checkedIndex);

メソッドを書き留める

private void SavePreferences(String key, int value){
  SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
  SharedPreferences.Editor editor = sharedPreferences.edit();
  editor.putInt(key, value);
  editor.commit(); 
 }
于 2013-05-27T10:32:45.670 に答える
1

アプリケーションを閉じる前に状態を保存する

 if(rbOne.isChecked())
 {
  saveCheckedRadioButtton("1");
 }
 else if(rbTwo.isChecked())
 {
  saveCheckedRadioButtton("2");
 }
 else if(rbThree.isChecked())
 {
  saveCheckedRadioButtton("3");
 }

これはSharedPreferences のコードです。

SharedPreferences spRadio; // class variable

spRadio = context.getSharedPreferences("Your_pref_name",0);

public void saveCheckedRadioButtton(String strRB) 
{
    spRadio.edit().putString("checked_radio", strRB).commit();
}

public String getCheckedRadioButtton()
{
    return spRadio.getString("checked_radio", "");
}

getCheckedRadioButton() を使用し てチェックされたラジオ ボタンの状態を取得し、設定します。

于 2013-05-27T10:39:31.647 に答える