Управление ориентацией в Android - PullRequest
0 голосов
/ 23 ноября 2011

Как я могу сохранить состояние моих вкладок при смене устройства Orientation? У меня есть ArrayList, который содержит все открытые в настоящее время вкладки

ArrayList<TabHost.TabSpec> mTabList = new ArrayList<TabHost.TabSpec>();

Изменение Orientation устройства удаляет все вкладки, созданные пользователем.

Я бы сделал это с savedInstanceState, но я не знаю, как его связать, если это вообще возможно.

Каковы ваши предложения?

Ответы [ 3 ]

1 голос
/ 23 ноября 2011

Эй, приятель, просто положи в файл манифеста

<activity android:name="YourActivityName" android:configChanges="orientation|keyboardHidden"></activity>

Просто имейте в виду

android:configChanges="orientation|keyboardHidden"

если вышеупомянутое решение не работает для вас, то вы можете использовать

Сохранение состояния активности Android с помощью Save Instance State

Надеюсь, это сработает ...

1 голос
/ 23 ноября 2011

В манифесте для вашей деятельности, который содержит рассматриваемый список, добавьте к нему атрибут configChanges .Для значения атрибута установите его в «ориентация».Это должно остановить поведение по умолчанию при перезапуске действия, поэтому ваш список очищается.

0 голосов
/ 23 ноября 2011

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

Вы можете использовать saveInstanceState.putParcelableArrayList (key, value). Вся идея будет зависеть от того, хотите ли вы снова загружать ресурсы при изменении ориентации, скажем, если вы используете разные ресурсы макета для альбомного и портретного режимов. Иначе обработка с использованием android : configChanges = "direction" будет лучшим выбором

...