Я хочу, чтобы статус флажка был сохранен в моих настройках.
Я устанавливаю прослушиватель на флажок, и если он отмечен, я выполняю prefs.putBoolean ("cbstatus", true), и это не проверено, я делаю prefs.putBoolean ("cbstatus", false);
Проблема в том, что в моем onStart (), когда я получаю prefs, мой логический getcbstatus = prefs.getBoolean ("cbstatus", ложный);всегда будет возвращать истину, независимо от того, как мой слушатель должен был установить этот статус ранее.
Что я делаю не так?У меня есть рабочие префы для других вещей, таких как прядильщики, текстовые просмотры и редактирование текстов, но то, что должно быть самым простым типом (логическим), доставляет мне трудности.
Я даже пытался удалить весь код, связанный сдля прослушивателей и установки pref для этого флажка, так что единственный код во всем действии, который имеет дело с флажком, находится в строке
Boolean getcbstat = prefs.getBoolean("cbon", false);
if (getcbstat = true) {
cb1.setChecked(true);
}
else {
cb1.setChecked(false);
format.setVisibility(View.VISIBLE);
}
Поскольку нет предпочтения cbon (я удалил их все), ондолжен вернуть false по умолчанию, и флажок должен быть снят с.cb1, конечно, это имя моего чекбокса.
Есть идеи?
Обновление по коду:
OnClickListener cb = new OnClickListener() {
public void onClick(View v) {
if (cb1.isChecked()) {
prefs.putBoolean("cbon", true);
}
else {
prefs.putBoolean("cbon", false);
}
}
};
А в onStart ():
Boolean getcbstat = prefs.getBoolean("cbon", false);
cb1.setChecked(getcbstat);