Сохранить и восстановить ButtonText при изменении ориентации экрана - PullRequest
0 голосов
/ 07 ноября 2010

Как обычно в Android, каждый раз, когда экран переворачивается в портретный / ландшафтный режим, действие проходит жизненный цикл от onSaveInstanceState до onDestroy, а затем воссоздается.

В моем действии есть ButtonText, который может бытьизменено пользователем.Он сбрасывается в исходное состояние, но мне нужно как-то сохранить последнее состояние.Как я могу добиться этого, мне придется переопределить onSaveInstanceState?Может кто-нибудь показать пример?

Ответы [ 2 ]

4 голосов
/ 15 мая 2013

У меня была та же проблема, и я ожидал, что реализация по умолчанию позаботится о восстановлении текста кнопки. К сожалению это не так. Наконец я нашел атрибут android: freezesText соответственно методу setFreezesText (логическое значение). При значении true кнопка автоматически восстановит свой текст.

См. Ссылку на суперкласс Button TextView: http://developer.android.com/reference/android/widget/TextView.html#attr_android:freezesText

1 голос
/ 07 ноября 2010

Шаг # 1: Позвоните getText().toString() на Button, чтобы получить подпись.

Шаг # 2: Вызовите putString() на Bundle, переданном вашей реализации onSaveInstanceState() для сохранениязаголовок.

Шаг # 3: Вызовите getString() на Bundle, переданном вашей реализации onRestoreInstanceState() (или на onCreate(), если Bundle не null, если вычтобы вернуть подпись, затем позвоните setText() на Button, чтобы вернуть подпись.

Вот пример проекта , в котором для сохранения используется onSaveInstanceState()Uri контакта (который также влияет на то, включен ли Button).

...