如果退出应用程序,Android保存状态为复选框

时间:2014-05-16 21:03:25

标签: java android checkbox

我有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);
    }

但它什么都不做

1 个答案:

答案 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)