Я сделал поисковый экран, который имеет одну вкладку для ключевых слов, фильтров, и кнопки поиска и трех дополнительных вкладок для различных типов результатов (каждый содержащий a ListView
с ArrayAdapter
). При запуске действия разработчик может дополнительно передать в результатах как дополнительное Parcelable[]
если поиск был уже выполнен. В onCreate()
метод я создаю каждую из этих трех вкладок для Parcelable[]
прошедший.
Когда я называю поиск от кнопки на вкладке фильтра, я очищаю вкладки и воссоздаю их с новыми результатами, который работает отлично. Проблема состоит в том, что при вращении устройства кажется, что автоматическая поддержка переключения ориентации Android воссоздает все действие, звоня onCreate()
. Это означает, что мои результаты поиска сбрасываются к Parcelable[]
прошедший при запуске действия.
Единственное решение, которое я имел до сих пор, состоит в том, чтобы звонить finish()
затем startActivity()
по существу перезапускать действие с новыми результатами. Я уверен, что должно быть много простого решения и что я сделал что-то чрезвычайно noobish.
Существует ли лучший способ сделать это?
Конечно, есть. Просто добавьте атрибут configChanges в свой AndroidManifest.xml, например:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden" />
Перезапуск активности при повороте Android Как отключить изменение ориентации на Android? http://developer.android.com/guide/topics/ manifest / activity-element.html # config