如何从 CheckBox 视图修改首选项?

How to modify preferences from a CheckBox view?

我的应用需要 3 个步骤才能进行首次设置。

在每个步骤中,我都希望用户能够修改首选项,因为它不是 PreferenceScreen,所以我无法添加 CheckBoxPreference。

我尝试使用 CheckBox 视图,但是我不知道如何让它影响首选项。

如何做到这一点?

您可以像这样为您的首选项写入一个布尔值:

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    if(prefs == null)
        return;

    SharedPreferences.Editor editor = prefs.edit();
    if(editor == null)
        return;

    editor.putBoolean("prefs_key_for_your_boolean", someBoolean);

    editor.commit();

并像这样加载它:

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    if(prefs == null)
        return;

    someBoolean = prefs.getBoolean("prefs_key_for_your_boolean", defaultBooleanValue);

当你想保存它时,像这样从复选框视图中读取值:

    someBoolean = checkBoxView.isChecked();

并使用您从首选项加载的值进行设置,如下所示:

    checkBoxView.setChecked(someBoolean);

您可以像这样监听复选框状态的变化:

    checkBoxView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // add code here
        }
    });