Radio Group未正确保存

时间:2012-01-26 15:44:00

标签: android radio-button save

经过大量的反复试验,我决定提出这个问题。我无法保存我的无线电组ID,所以当我返回使用单选按钮的活动时,所有都是空的。

这是我的代码:

public class Random extends Activity implements RadioGroup.OnCheckedChangeListener, OnClickListener {

... ...

这就是我提交已检查的单选按钮ID

的方式
public void onCheckedChanged (RadioGroup group, int checkedId) {

        int profileGroup_CheckId = profileGroup.getCheckedRadioButtonId();
        int configGroup_CheckId = configGroup.getCheckedRadioButtonId();

        SharedPreferences profileGroupPrefs = getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE);
        SharedPreferences.Editor prefsEditor = profileGroupPrefs.edit();
        prefsEditor.putInt("profileGroup_CheckId", profileGroup_CheckId);
        prefsEditor.putInt("configGroup_CheckId", configGroup_CheckId);
        prefsEditor.commit();
}

我在onCreate中添加了这个

public void onCreate(Bundle savedInstanceState) {
    SharedPreferences profileGroupPrefs = this.getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE);
    profileGroupPrefs.getInt("profileGroup_CheckId", 0);
    profileGroupPrefs.getInt("configGroup_CheckId", 0);

现在,从我的应用程序的shared_prefs中保存的值ARE,因为我已经检查了profileGroup.xml,但是一旦我返回就不会检查单选按钮。

我已尝试过许多其他用户列出的方式,但没有一种方法可行。一些帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

尝试这个。

public void onCheckedChanged (RadioGroup group, int checkedId) {    
    int profileGroup_CheckId = profileGroup.getCheckedRadioButtonId();
    int configGroup_CheckId = configGroup.getCheckedRadioButtonId();

    SharedPreferences profileGroupPrefs = getSharedPreferences("profileGroupPrefs", MODE_WORLD_WRITABLE);
    SharedPreferences.Editor prefsEditor = profileGroupPrefs.edit();
    prefsEditor.putInt("profileGroup_CheckId", profileGroup_CheckId);
    prefsEditor.putInt("configGroup_CheckId", configGroup_CheckId);
    prefsEditor.commit();
)

public void onResume() {
super.onResume();
SharedPreferences profileGroupPrefs = this.getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE);
    int a=  profileGroupPrefs.getInt("profileGroup_CheckId", 0);
    int b=  profileGroupPrefs.getInt("configGroup_CheckId", 0);
     profileGroup.check(a); 
     configGroup.check(b);
    }