保存checkedtextview状态的问题,它与多个项目不兼容

时间:2019-04-28 08:20:53

标签: java onresume onpause checkedtextview

我进行了一个由CheckTextView和TextView组成的活动。当用户选中该框时,我想在用户退出活动或关闭应用程序时保存该状态。

我向每个CTV添加了onClickListener。

然后我尝试将其保存在onPause和onResume方法中。我无法解决此问题,因为当我只保存其中几个复选框时,该复选框就可以工作(虽然有所不同,但可以与其中的1-5个一起工作),但是当我添加所有复选框时,返回到活动。

#sec-faq-items .grid-1.grid-col {
  # Some rule
}

1 个答案:

答案 0 :(得分:0)

因为只用一个键来保存CheckedTextView's值!

 private void save(final boolean isChecked, String key) {
        SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean(key, isChecked);
        editor.apply();
    }

    private boolean load(String key) {
        SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
        return sharedPreferences.getBoolean(key, false);
    }

    protected void onPause() {
        super.onPause();
        save(ctv1.isChecked(), "check1");
        save(ctv2.isChecked(), "check2");
        save(ctv3.isChecked(), "check3");



    }

    protected void onResume() {
        super.onResume();
        ctv1.setChecked(load("check1"));
        ctv2.setChecked(load("check2"));
        ctv3.setChecked(load("check3"));

    }