#android #android-layout #android-lifecycle #searchview #android-menu
Вопрос:
Когда я поворачиваю устройство, мне нужно отобразить текст в режиме поиска, пока список не видоизменен, поэтому я установил isIconified = false
свойство, onCreateOptionsMenu
но когда устройство поворачивается, вид поиска по-прежнему остается значком.
Запрос выполнен нормально, так как список элементов изменился
Моя основная деятельность:
private var searchViewText: CharSequence? = null
/**
* device rotation safety
*/
override fun onSaveInstanceState(savedInstanceState: Bundle) {
//save the SearchView text
savedInstanceState.putCharSequence(
"searchViewText",
searchView.query
)
super.onSaveInstanceState(savedInstanceState)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
searchViewText = savedInstanceState.getCharSequence("searchViewText")
}
/**
* inflate option menu
*/
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_main_activity, menu)
val searchItem = menu.findItem(R.id.item_search)
searchView = searchItem.actionView as SearchView
searchView.setOnQueryTextListener(QueryListener())
if(searchViewText != null amp;amp; searchViewText.toString() != "") {
searchView.isIconified = false
searchView.setQuery(searchViewText, true)
}
return super.onCreateOptionsMenu(menu)
}