Должен ли онсульстанцестьтировать сохранить «включенность» взглядов?

StackOverflow https://stackoverflow.com/questions/2855417

Вопрос

У меня есть предпочтение активности, где я могу изменить язык и тему моего приложения. Оттуда я возвращаюсь к предыдущему виду через задний ключ, и я хочу воссоздать свою деятельность.

Мне удалось сделать это путем повторной интикализации макета в onResume а также звонить onRestoreInstanceState оттуда. Все взгляды восстанавливаются правильно, с проверками флажков, если это необходимо, Edittexts заполнили тексты, которые я оставил там ранее.

Но у меня также есть кнопка, которая изначально отключена и включена только тогда, когда RadioButton проверяется. Проблема с этим следующая: я проверяю RadioButton, кнопка включена. Затем я хожу в настройки, измените тему там и вернемся к первой активности. Когда я приеду туда, радиообукт восстанавливается как проверено, но кнопка отключена.

Таким образом, кажется, что состояние включенного / отключенного отключения не сохраняется в пучок, который кажется Countrintive. И я не нашел код в источнике Android, который также делает это тоже. Я что-то упускаю, или мне нужно написать свой собственный код для этого?

Редактировать: BTW, состояние сохраняется только для представлений, которые имеют идентификаторы. И эта кнопка имеет одну, я гарантирую что :)

Это было полезно?

Решение

Их ключ здесь состоит в том, чтобы увидеть, что на самом деле включает кнопку и убедиться, что это соответствует каждому доступу к приложению.

Из вашего заявления:

Но у меня также есть кнопка, которая изначально отключена и включена только тогда, когда RadioButton проверяется.

Похоже, у вас есть слушатель на радиообъекте, который позволяет кнопку. Из этого я собираю, что кнопка изначально отключена, что означает, что вам придется изменить, что каждый раз, когда вы запускаете активность.

Ваши варианты следующие:

  • Удалите радиообутонтона каким-то глобальным предпочтением, который проверяется в Onreume, что требует кнопки при необходимости
  • Когда RadioButton проверяется, измените глобальные настройки (или, возможно, настройки GUI) к одной, в которой включена кнопка. Которые могут оставаться навсегда, пока радиообуттон снова не будет не отмечен.
  • Сохранение включенности в онсунстанцестате, как вы упоминаете

Трудно сказать, что наиболее подходит, потому что вы не упомянули контекст случая использования, но я бы избегал отправки его в комплекте, если это не очень иногда использованная активность. Это имеет много смысла отслеживать настройку радиообуттона, либо хранив его, либо изменив вид до дальнейшего уведомления.

Другие советы

Самый простой способ - включить вашу кнопку в OnResume, если RadioButton проверен.

Редактировать: Предпочтениегруппа Может обрабатывать зависимости между взглядами, но ему нужна деятельность подкласса Предпочтениецективность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top