2014-03-12 13 views
4

我有活动更改radioButton。Android:SharedReferences在BroadcastReceiver RadioButton的整数值不更新?

在onCreate方法

 sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
    radioGroup = (RadioGroup)findViewById(R.id.radiogroup); 
    radioGroup.setOnCheckedChangeListener(radioGroupOnCheckedChangeListener); 

实现重写的方法,并获得单选框保存sharedpreference

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.. 
    } 

现在当接收AlarmReceiver扩展BroadcastReceiver

@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” 字段是正确的。第二次,如果checkedIndex在radioButton更改时更新,但它返回第一个值。价值似乎并没有得到更新...

回答

0

这里AndroidMainifest.xml更改文件中的接收器值...

<receiver 
    android:name="AlarmReceiver" 
      />