我有5个复选框,当它们被点击时,他们使用onCheckedChangeListener将抽象类中的布尔值设置为true或false。例如:
checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked)
{
if(isChecked)
{
CheckboxData.checked = true;
}
else if(!isChecked)
{
CheckboxData.checked = false;
}
}
});
然而,当我离开应用程序并返回时,复选框不再被单击,但布尔值仍为真。如何让应用程序记住单击复选框。我应该只检查主要活动onCreate中的布尔值,并将复选框设置为是否选中,或者是否有更好/更快的方式让应用程序记住复选框状态?
刚刚在主要活动onCreate方法中添加了这个:
if(CheckboxData.checked)
{
CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
checkbox.setChecked(true);
}
但它什么都不做
答案 0 :(得分:1)
当Activity
获取destroyed
时,如果为true,则选中复选框状态,并在shared Preference
@Override
public void onDestroy() {
if(CheckboxData.checked){
SharedPreferences prefs = getSharedPreferences("private preference", Context.MODE_PRIVATE);
prefs.edit()
.putBoolean("CheckboxData",true)
.commit();
}
super. onDestroy();
}
当Activity
重新启动时,在onCreate
中优先检查复选框状态,如果为true则启用复选框
SharedPreferences prefs = getSharedPreferences("private preference", Context.MODE_PRIVATE);
boolean isChecked = prefs.getBoolean("CheckboxData",false);
if(isChecked)
checkBoxView.setChecked(true)