经过大量的反复试验,我决定提出这个问题。我无法保存我的无线电组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,但是一旦我返回就不会检查单选按钮。
我已尝试过许多其他用户列出的方式,但没有一种方法可行。一些帮助将不胜感激。
答案 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);
}