我有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);
}但它什么也做不了
发布于 2014-05-16 21:19:29
当Activity获取destroyed时,选中复选框状态(如果为真),并在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) https://stackoverflow.com/questions/23704505
复制相似问题