【发布时间】:2012-11-26 18:11:31
【问题描述】:
我正在开发一个应用程序。一页中有许多复选框。我想在退出页面时保存 CheckBox 的状态。我使用 SharedPreferences 来保存。代码是这样的:
checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
// TODO Auto-generated method stub
Editor editor = getSharedPreferences("syllabus", 0).edit();
editor.putBoolean("cbx1_ischecked", isChecked);
editor.commit();
}
});
checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
// TODO Auto-generated method stub
Editor editor = getSharedPreferences("syllabus", 0).edit();
editor.putBoolean("cbx2_ischecked", isChecked);
editor.commit();
}
});
当我离开这个页面,然后再回来。默认情况下,所有复选框状态都不会被选中。为什么?
【问题讨论】:
-
你在哪里设置复选框?
-
你如何设置来自
SharedPreferences的复选框值?在你的情况下很简单。onPause()(将值存储在 SharedPreferences 中)和onResume()(从 SharedPreferences 中获取值)有效。 -
使用 myPrefs = getApplicationContext().getSharedPreferences("myPrefs", MODE_WORLD_WRITEABLE); 重新打开应用时获取所有值并设置所有复选框值..