Android 如何将radiogroup的selectedindex保存到SharedReferences

Android 如何将radiogroup的selectedindex保存到SharedReferences,android,Android,我想将RadioGroup的selectedindex保存到SharedReferences,但我不知道如何做。谁能给我一些建议怎么做?谢谢您是否已经添加了您的radiogroup,您是否能够阅读它并知道如何使用SharedReferences 如果是这样,我建议您在活动中重写onPause()。在这里,您可以读取radiogroup的值并将其保存到SharedReferences 然后,如果需要,重写onResume()以从SharedReferences读取并更新UI。尝试下面的示例代码:

我想将RadioGroup的selectedindex保存到SharedReferences,但我不知道如何做。谁能给我一些建议怎么做?谢谢

您是否已经添加了您的radiogroup,您是否能够阅读它并知道如何使用SharedReferences

如果是这样,我建议您在活动中重写onPause()。在这里,您可以读取radiogroup的值并将其保存到SharedReferences


然后,如果需要,重写onResume()以从SharedReferences读取并更新UI。

尝试下面的示例代码:

public class MainActivity extends Activity {

private RadioGroup radioGroup;

private static final String SELECTED_INDEX="SelectedIndex";

private OnCheckedChangeListener checkedChangedListener=new OnCheckedChangeListener() {

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

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    radioGroup = (RadioGroup) findViewById(R.id.rg);
    radioGroup.setOnCheckedChangeListener(checkedChangedListener);
    RadioButton rbtn=((RadioButton)radioGroup.findViewById(getSelectedValue()));
    if(rbtn!=null){
        rbtn.setChecked(true);
    }
}

private int getSelectedValue(){
    SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(this);
    return pref.getInt(SELECTED_INDEX, -1);
}

private void saveSelectedIndex(int value){
    SharedPreferences.Editor editor=PreferenceManager.getDefaultSharedPreferences(this).edit();
    editor.putInt(SELECTED_INDEX, value);
    editor.commit();
}

}

@阿里的回答和我的是互补的。您可以将他的代码添加到onPause()。