2011-01-28 4 views
1

Я создал один макет с двумя полями редактирования. После запуска приложения я ввожу текст в оба окна редактирования, и я нажимаю кнопки 7 и 9, чтобы повернуть экран эмулятора, и текст, который я ввел, остается. Но я прочитал из документов, что при изменении ориентации экрана активность будет перезапущена, и данные исчезнут, если я не сохраню состояние.Активность не теряется при повороте экрана эмулятора

Я делаю что-то неправильно, чтобы изменить ориентацию экрана? Я приветствую любые предложения, поскольку я новичок в Android.

ответ

2

Пока вы даете EditText уникальный идентификатор, Android достаточно умна, чтобы сохранить текст для вас

Цитата Mark Murphyhere:

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

Source

1

Вы можете настроить поведение вашей деятельности согласно конфигурации телефона, onConfigurationChanged (Конфигурация newConfig) это у слушателя, с помощью которого вы можете настроить поведение вашего телефона. http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged(android.content.res.Configuration) для получения более подробной информации ...

+0

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

0

Деятельность (обычно) воссоздается при изменении ориентации экрана. Однако перед тем как старые представления будут уничтожены, вызывается метод onSaveInstanceState, и после создания новых создаются метод onRestoreInstanceState. Это позволяет полям редактирования сохранять свой старый контент и перезагружать его после создания нового действия.

Если вы не хотите, чтобы деятельность была воссоздана, используйте прослушиватель onConfigurationChanged и атрибут android:configChanges.

+0

спасибо за ответ, но я не сохранил свое состояние активности в onSaveInstaceState явно. система сохранит его автоматически ..? – newbie

+0

Да, Android делает это автоматически, как говорит SteD – beetstra

Смежные вопросы