Изменение ориентации Android называет onCreate

Я сделал поисковый экран, который имеет одну вкладку для ключевых слов, фильтров, и кнопки поиска и трех дополнительных вкладок для различных типов результатов (каждый содержащий a ListView с ArrayAdapter). При запуске действия разработчик может дополнительно передать в результатах как дополнительное Parcelable[] если поиск был уже выполнен. В onCreate() метод я создаю каждую из этих трех вкладок для Parcelable[] прошедший.

Когда я называю поиск от кнопки на вкладке фильтра, я очищаю вкладки и воссоздаю их с новыми результатами, который работает отлично. Проблема состоит в том, что при вращении устройства кажется, что автоматическая поддержка переключения ориентации Android воссоздает все действие, звоня onCreate(). Это означает, что мои результаты поиска сбрасываются к Parcelable[] прошедший при запуске действия.

Единственное решение, которое я имел до сих пор, состоит в том, чтобы звонить finish() затем startActivity() по существу перезапускать действие с новыми результатами. Я уверен, что должно быть много простого решения и что я сделал что-то чрезвычайно noobish.

Существует ли лучший способ сделать это?

14
задан Samah 2 December 2015 в 21:44
поделиться

1 ответ

Конечно, есть. Просто добавьте атрибут configChanges в свой AndroidManifest.xml, например:

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

Перезапуск активности при повороте Android Как отключить изменение ориентации на Android? http://developer.android.com/guide/topics/ manifest / activity-element.html # config

32
ответ дан 1 December 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: