2012-02-13 26 views
0

我用onCheckedChanged方法来处理工作良好,当我离开clicked.After或关闭应用程序,当我重新打开它的checkboxes.Its,复选框状态保持disabled.I希望我的checkboes状态,我点击(选中/取消),即使是在关闭应用程序,并重新打开它。我试图用张贴在这里实现它。但是sharedpreferences,因为我不清除它,我不能后。Android的制作过程,甚至在关闭应用程序后复选框状态稳定:

viewHolder.checkbox 
       .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(CompoundButton buttonView, 
          boolean isChecked) { 


         Model element = (Model) viewHolder.checkbox 
           .getTag(); 
         element.setSelected(buttonView.isChecked()); 


    Interactivearrayadapter.this.putBooleanInPreferences(isChecked,"isChecked"); 
} 
    }); 
    } 

public void putBooleanInPreferences(boolean isChecked,String key){ 
    SharedPreferences sharedPreferences = this.getPreferences(Activity.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putBoolean(key, isChecked); 
    editor.commit();   
} 
public boolean getBooleanFromPreferences(String key){ 
    SharedPreferences sharedPreferences = this.getPreferences(Activity.MODE_PRIVATE); 
    Boolean isChecked = sharedPreferences.getBoolean(key, false); 
    return isChecked; 

我用Interactivearrayadapter类中此代码,因为我在list.Error显示复选框示出getpreference(字符串)此类不支持的。

+0

使用CheckBoxPrefrence http://developer.android.com/reference/android/preference/CheckBoxPreference.html和示例在这里http://androidpartaker.wordpress.com/2010/07/11/android-preferences/ – 2012-02-13 12:25:43

+0

我更新我的代码 – Mercy 2012-02-13 12:28:50

回答

2

将您的复选框ischecked()标记在sharedpreferences并获得该标志并在下次启动应用时显示。

0

用于每个复选框的偏好。如果显示的活性读取偏好和选择或取消选择的复选框(例如,在的onResume())。为每个复选框注册一个OnClickListener,并且如果复选框被单击,请修改首选项值。 我写了一篇关于如何使用字符串这里共享偏好的简短说明:https://stackoverflow.com/a/9238997/1127492 要修改例如布尔,而是如果字符串很简单。

相关问题