我刚刚开始使用共享首选项来允许我在离开应用程序时保存复选框的状态。我已经开始工作,但随后我突然意识到它可能会保存所有复选框的首选项,除非我做出另一个偏好。我是否必须为每个要引用的复选框创建共享首选项?
现在代码。我知道这将根据我留下的内容选中或取消选中这两个复选框,因为它们引用了相同的首选项。
CheckBox checkbox = (CheckBox) findViewById(R.id.description);
CheckBox checkbox1 = (CheckBox) findViewById(R.id.description1);
SharedPreferences sharedPref = getSharedPreferences("mypref", MODE_PRIVATE);
boolean checked = sharedPref.getBoolean("checked", false);
checkbox.setChecked(checked);
checkbox1.setChecked(checked);
我的复选框处理程序如下所示
if(tmpChkBox.isChecked())
{
tmpChkBox.setBackgroundColor(Color.BLUE);
SharedPreferences sharedPref = getSharedPreferences("mypref", MODE_PRIVATE);
sharedPref.edit().putBoolean("checked", true).commit();
}
else
{
tmpChkBox.setBackgroundColor(Color.RED);
SharedPreferences sharedPref = getSharedPreferences("mypref", MODE_PRIVATE);
sharedPref.edit().putBoolean("checked", false).commit();
}
所以我需要在一个共享首选项中重命名字符串引用吗?就像sharedPref.edit().putBoolean("checked", false).commit();
使另一个用于不同的检查一样,我会将“已检查”更改为“已检查1”吗?