Как сохранять значение нескольких CheckBox?

    @Override public void onPause() {
        super.onPause();
        save(mCheckBox.isChecked());
        save(mCheckBox2.isChecked());
    }

    @Override public void onResume() {

        super.onResume(); mCheckBox.setChecked(load());
        super.onResume(); mCheckBox2.setChecked(load());
    }
    private void save(final boolean isChecked) {
        SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean("check", isChecked); editor.commit();
    }
    private boolean load() {
        SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
        return sharedPreferences.getBoolean("check", false);
    }

}


Ответы (1 шт):

Автор решения: Вася Воронцов

Раз уж это всё происходит в Activity, то не надо инициализировать SharedPreferences и Editor и присваивать им значение каждый раз.

SharedPreferences prefer;
Editor edit;
CheckBox checkBox, checkBox2;

void save(String checkBoxName, boolean isChecked) {
    editor.putBoolean(checkBoxName, isChecked);
    editor.apply();
};

boolean load(String checkBoxName) {
    return prefer.getBoolean(checkBoxName, false);
};

@Override
protected void onPause() {
    super.onPause();
    save("checkBox", checkBox.isChecked());
    save("checkBox2", checkBox2.isChecked());
};

@Override
protected void onResume() {
    super.onResume();
    checkBox.setChecked(load("checkBox"));
    checkBox2.setChecked(load("checkBox2"));
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    prefer = getSharedPreferences("STOR_NAME", Context.MODE_PRIVATE);
    editor = prefer.edit();
};

Дело в том, что необходимо уточнять, какое именно вы хотите сохранить значение. Вы дважды использовали один и тот же метод, в котором клали два разных (для вас) значения под одним именем. Разумеется, в этом случае второе значение просто заменяет собой первое, и никакое другое значение таким образом получить невозможно.

→ Ссылка