我有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);
}
但是它什么也没做
当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
中优先检查复选框状态,如果为真,则启用复选框
SharedPreferences prefs = getSharedPreferences("private preference", Context.MODE_PRIVATE);
boolean isChecked = prefs.getBoolean("CheckboxData",false);
if(isChecked)
checkBoxView.setChecked(true)