请教一个Android方面在Menu菜单里定义的RadioGroup中返回某个RadioButton的选中状态的问题
请教各位大神Android方面的问题,我有一个用Menu菜单,菜单里定义了一个单选框组(RadioGroup),现在的问题是我已经完成了对选中的RadioGroup组里具...
请教各位大神Android方面的问题,我有一个用Menu菜单,菜单里定义了一个单选框组(RadioGroup),现在的问题是我已经完成了对选中的RadioGroup组里具体的RadioButton的选中状态的保存,用的是SharedPreferences来保存的,但在退出程序再重新进入时,Menu菜单里显示的RadioButton的选中状态仍然是我在Menu文件里自定义的默认选中的那个选项!请这个问题要怎么解决才能使在重新进入时,Menu菜单里的RadioButton的选中状态与SharedPreferences里保存的结果相同呢?
展开
1个回答
展开全部
RadioButton在做表单的时候经常用到,在安卓开发中,RadioButton需要和RadioGroup一起使用,表示在一组可选项中,只有一个可以被选中,RadioGroup状态改变的一个监视器OnCheckedChangeListener,RadioGroup使用的时候调用setOnCheckedChangeListener(),然后重写OnCheckedChangeListener中的onCheckedChanged()方法,比如:
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// 获取变更后的选项的ID
int radioButtonId = group.getCheckedRadioButtonId();
switch (radioButtonId) {
case R.id.message_radiobtn:
mFragment = new MessageFragment();
break;
case R.id.contact_radiobtn:
mFragment = new ContactFragment();
break;
case R.id.dynamic_radiobtn:
mFragment = new DynamicFragment();
break;
default:
break;
}
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.realtabcontent, mFragment).commit();
}
});
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// 获取变更后的选项的ID
int radioButtonId = group.getCheckedRadioButtonId();
switch (radioButtonId) {
case R.id.message_radiobtn:
mFragment = new MessageFragment();
break;
case R.id.contact_radiobtn:
mFragment = new ContactFragment();
break;
case R.id.dynamic_radiobtn:
mFragment = new DynamicFragment();
break;
default:
break;
}
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.realtabcontent, mFragment).commit();
}
});
追问
你写的不对啊,我用的SharedPreferences保存的数据,在程序重新进入时,RadioButton所指向的实现方法是对的,只是在重新进入程序后,点Menu菜单时,显示的默认已选中的RadioButton不是我之前所选择的那个,而是我在menu.xml文件里默认选中的那个,
另,选中某个RadioButton后,我已保存了该数据到SharedPreferences,有必要的话我可以放代码过来
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询