复选框在重新打开应用程序时传递操作

时间:2016-08-21 04:58:36

标签: java android android-studio checkbox sharedpreferences

我已经使用共享首选项存储了复选框值(选中/取消选中),但在关闭和重新打开应用程序时/上传递复选框操作时遇到问题。
说明:单击复选框(即check = shows& uncheck = hides)正常工作时,不同动作中的按钮会隐藏/显示。
当我关闭应用程序并重新打开复选框时,保持选中但按钮未显示

使用共享偏好设置保存的复选框代码

final CheckBox checkBox = (CheckBox) findViewById(R.id.add_fb);
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
        final SharedPreferences.Editor editor = preferences.edit();

        checkBox.setChecked(preferences.getBoolean("checked",false));

        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                isCheckedValue = isChecked;
                editor.putBoolean("checked", isChecked);
                editor.apply();
            }
        });

    }

我尝试通过提供if-else条件

来实现onStart()以传递数据
@Override
    protected void onStart() {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
        final SharedPreferences.Editor editor = preferences.edit();
        super.onStart();
        if(checkBox.isChecked()) {
            editor.putBoolean("checked", true);
            editor.apply();
        }else{
            editor.putBoolean("checked", false);
            editor.apply();
        }
    }

这是我在检查复选框后传递数据的地方

@Override
            public void onBubbleClick(BubbleLayout bubble) {
                Intent in = new Intent(MainActivity.this, PopUpWindow.class);
                in.putExtra("yourBoolName", isCheckedValue );
                startActivity(in);

            }

1 个答案:

答案 0 :(得分:0)

而不是在'onBubbleClickMethod'中发送'isCheckedValue' 试试这个 -

in.putExtra( “yourBoolName”,preferences.getBoolean( “选中”,假));