Должен ли онсульстанцестьтировать сохранить «включенность» взглядов?
-
27-09-2019 - |
Вопрос
У меня есть предпочтение активности, где я могу изменить язык и тему моего приложения. Оттуда я возвращаюсь к предыдущему виду через задний ключ, и я хочу воссоздать свою деятельность.
Мне удалось сделать это путем повторной интикализации макета в onResume
а также звонить onRestoreInstanceState
оттуда. Все взгляды восстанавливаются правильно, с проверками флажков, если это необходимо, Edittexts заполнили тексты, которые я оставил там ранее.
Но у меня также есть кнопка, которая изначально отключена и включена только тогда, когда RadioButton проверяется. Проблема с этим следующая: я проверяю RadioButton, кнопка включена. Затем я хожу в настройки, измените тему там и вернемся к первой активности. Когда я приеду туда, радиообукт восстанавливается как проверено, но кнопка отключена.
Таким образом, кажется, что состояние включенного / отключенного отключения не сохраняется в пучок, который кажется Countrintive. И я не нашел код в источнике Android, который также делает это тоже. Я что-то упускаю, или мне нужно написать свой собственный код для этого?
Редактировать: BTW, состояние сохраняется только для представлений, которые имеют идентификаторы. И эта кнопка имеет одну, я гарантирую что :)
Решение
Их ключ здесь состоит в том, чтобы увидеть, что на самом деле включает кнопку и убедиться, что это соответствует каждому доступу к приложению.
Из вашего заявления:
Но у меня также есть кнопка, которая изначально отключена и включена только тогда, когда RadioButton проверяется.
Похоже, у вас есть слушатель на радиообъекте, который позволяет кнопку. Из этого я собираю, что кнопка изначально отключена, что означает, что вам придется изменить, что каждый раз, когда вы запускаете активность.
Ваши варианты следующие:
- Удалите радиообутонтона каким-то глобальным предпочтением, который проверяется в Onreume, что требует кнопки при необходимости
- Когда RadioButton проверяется, измените глобальные настройки (или, возможно, настройки GUI) к одной, в которой включена кнопка. Которые могут оставаться навсегда, пока радиообуттон снова не будет не отмечен.
- Сохранение включенности в онсунстанцестате, как вы упоминаете
Трудно сказать, что наиболее подходит, потому что вы не упомянули контекст случая использования, но я бы избегал отправки его в комплекте, если это не очень иногда использованная активность. Это имеет много смысла отслеживать настройку радиообуттона, либо хранив его, либо изменив вид до дальнейшего уведомления.
Другие советы
Самый простой способ - включить вашу кнопку в OnResume, если RadioButton проверен.
Редактировать: Предпочтениегруппа Может обрабатывать зависимости между взглядами, но ему нужна деятельность подкласса Предпочтениецективность.