【发布时间】:2014-04-16 08:19:22
【问题描述】:
我有活动来更改单选按钮。
在oncreate方法中
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
radioGroup = (RadioGroup)findViewById(R.id.radiogroup);
radioGroup.setOnCheckedChangeListener(radioGroupOnCheckedChangeListener);
实现被覆盖的方法并让 Radiobutton 保存共享首选项
RadioGroup.OnCheckedChangeListener radioGroupOnCheckedChangeListener =
new RadioGroup.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton checkedRadioButton = (RadioButton)radioGroup.findViewById(checkedId);
int checkedIndex = radioGroup.indexOfChild(checkedRadioButton);
savePreferences("remaindertype_toggle_value",checkedIndex);
Log.e("Chenge", String.valueOf(checkedIndex)); // here the get proper value of checkdIndex
}};
实现 sharePreference 方法...
private void savePreferences(String key, int data) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(key, data);
editor.commit();
Log.e("Chengeinside", String.valueOf(value));// Here also get the proper value of the data..
}
现在当接收警报接收器扩展广播接收器
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(context);
TypeToggleValue = sharedPreferences.getInt(RemainderType_Toggle, 0);
Log.e("AppToggleValue", String.valueOf(TypeToggleValue));// here when first time run the application get the proper value but change the value and secound time get the value its does not updated
}
我也在维护AndroidMainifest.xml文件
<receiver
android:name="AlarmReceiver"
android:process=":remote"
/>
问题出在 onReceive.. 第一次“checkedIndex”字段是正确的。第二次,如果在radioButton change 时更新了checkedIndex,则返回第一个值。该值似乎没有更新...
【问题讨论】: