Как установить флажок всегда, даже после перезапуска приложения, пока пользователь не снимет галочку в Android? - PullRequest
0 голосов
/ 05 июля 2018

У меня простой вопрос. Я хочу установить флажок, чтобы приложение всегда закрывалось и перезапускалось. Этот процесс должен продолжаться до тех пор, пока пользователь сам не снимет его. Если сам пользователь снимает галочку, то должен быть снят, пока пользователь не проверит это снова в Android.

Пожалуйста, объясните мне, как я могу это сделать.

Ответы [ 4 ]

0 голосов
/ 05 июля 2018

Используйте этот простой код ......

Используйте SharedPreferences для поддержания состояния флажков.

Initialization ....

checkBox.setChecked(getSharedPreferences("MyAPP", Context.MODE_PRIVATE).getBoolean("checkBox", true));

OnCheckedChangeListener

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         getSharedPreferences("MyAPP", Context.MODE_PRIVATE).edit().putBoolean("checkBox", isChecked).commit();

              }
        });

В первый раз будут установлены все флажки, и все будет работать так, как вы хотите ...

Выше кода только для одного флажка. Попробуйте то же самое для других флажков. Просто измените уникальный ключ для всех флажков, как я использовал здесь "флажок" в checkBox.setChecked(getSharedPreferences("MyAPP", Context.MODE_PRIVATE).getBoolean("checkBox", true));

надеюсь, что ваша работа сделана этим .....

0 голосов
/ 05 июля 2018

сохраните логический флаг в sharedPreferences или localDB для действий пользователя. И по умолчанию оставьте значение этого флага равным true. Когда пользователь нажимает флажок, обновите значение этого флага. Поэтому при каждом запуске приложения проверяйте значение этого флага, например: -

if(checkBoxEnabled) {
     checkBox.setEnabled(true);
} else {
     checkBox.setEnabled(false);
}
0 голосов
/ 05 июля 2018

Если вы добавили флажок в макете XML, добавьте android:checked="true" для начальной проверки.

Добавить статус к SharedPreferences при прослушивании изменения значения. например onCheckedChanged()

SharedPreferences sp = getSharedPreferences(getPackageName(), MODE_PRIVATE);

sp.edit.putBoolean("check_status", checkBox.isChecked()).apply();
0 голосов
/ 05 июля 2018

Для этого вы должны использовать SharedPreferance глобально, чтобы сохранить значение по умолчанию для флажка и изменить значение внутри предпочтения onCheckChange и при просмотре нагрузки установить состояние флажка в соответствии с флагом в предпочтении

...