我想在我的第二个 Activity 中检查单选按钮值。 我还使用了 RadioGroup 和 sharedpreference。
但第一个 Radiobutton 值在我的第二个 Activity 中获得。所以 sharedpreference 不保存单选按钮值。
请出示此代码并帮助我如何获得?
rg = (RadioGroup) findViewById(R.id.radiotype);
rbtn=((RadioButton)rg.findViewById(getSelectedValue()));
if(rbtn!=null){
rbtn.setChecked(true);
}
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
savePreferences(RemainderType_Toggle, checkedId);
}
});
}
private void loadSavedPreferences() {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
TypeToggleValue = sharedPreferences.getInt(RemainderType_Toggle, R.id.radionoti);
if (TypeToggleValue == R.id.radionoti)
{
rbtn.setChecked(true);
}
else
{
rbtn.setChecked(false);
}
}
private int getSelectedValue(){
SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(this);
return pref.getInt(RemainderType_Toggle, -1);
}
private void savePreferences(String key, int value) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.putInt(key, value);
editor.commit();
}
SecondAcityvity.java
在这里我想要选定的单选按钮值。
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(context);
TypeToggleValue = sharedPreferences.getInt(RemainderType_Toggle, R.id.radioalarm);
Log.d("TypeToggleValue", String.valueOf(TypeToggleValue));
最佳答案
您不需要在引用您的RadioGroup
时引用您的RadioButton
。只需您无需引用即可访问它。
改变你的底线
rbtn=((RadioButton)rg.findViewById(getSelectedValue()));
如下
rbtn=(RadioButton)findViewById(R.id.radioButton);
关于android - Radiogroup 值不会保存在 android 的 sharedpreference 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22317516/