Как поставить галочку всегда, даже после перезапуска приложения, пока пользователь не снимет галочку в Android?
Мой вопрос прост, я хочу поставить галочку, чтобы приложение всегда закрывалось и перезапускалось. Этот процесс должен продолжаться до тех пор, пока сам пользователь не снимет галочку. Если сам пользователь снимает галочку, то должен быть снят, пока пользователь не проверит это снова в Android.
Пожалуйста, покажите мне, как я могу это сделать.
4 ответа
Используйте этот простой код......
использование SharedPreferences
поддерживать состояние флажков.
Инициализация....
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));
надеюсь, что ваша работа сделана этим.....
Сохраните логический флаг в sharedPreferences или localDB для действий пользователя. И по умолчанию сохраняют значение этого флага как true. Когда пользователь нажимает флажок, обновите значение этого флага. Поэтому при каждом запуске приложения проверяйте значение этого флага, например:
if(checkBoxEnabled) {
checkBox.setEnabled(true);
} else {
checkBox.setEnabled(false);
}
Где вы добавили флажок в макете XML, добавить android:checked="true"
для первоначальной проверки.
Добавить статус в SharedPreferences
когда вы слушаете изменение стоимости. например onCheckedChanged()
SharedPreferences sp = getSharedPreferences(getPackageName(), MODE_PRIVATE);
sp.edit.putBoolean("check_status", checkBox.isChecked()).apply();
Для этого вы должны использовать SharedPreferance
глобально, чтобы сохранить значение по умолчанию флажка и изменить значение внутри предпочтения onCheckChange
а при просмотре загрузки установить состояние флажка в соответствии с флагом в настройках