首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果退出应用程序,Android保存复选框状态

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

Stack Overflow用户
提问于 2014-05-16 21:03:24
回答 1查看 1.9K关注 0票数 0

我有5个复选框,当单击它们时,它们会使用onCheckedChangeListener将抽象类中的布尔值设置为true或false。示例:

代码语言:javascript
运行
复制
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方法中添加了这一点:

代码语言:javascript
运行
复制
      if(CheckboxData.checked)
    {
        CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
        checkbox.setChecked(true);
    }

但它什么也做不了

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-16 21:19:29

Activity获取destroyed时,选中复选框状态(如果为真),并在shared Preference中添加复选框状态

代码语言:javascript
运行
复制
     @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,则启用复选框。

代码语言:javascript
运行
复制
  SharedPreferences prefs = getSharedPreferences("private preference", Context.MODE_PRIVATE);

  boolean isChecked = prefs.getBoolean("CheckboxData",false);
  if(isChecked)
  checkBoxView.setChecked(true) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23704505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档