【发布时间】:2021-03-22 16:16:28
【问题描述】:
我有一个 SearchActivity,其中包含一个包含 searchView 的菜单。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/searchMessageMenuItem"
android:icon="@drawable/ic_search"
android:title="Search"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="androidx.appcompat.widget.SearchView" />
</menu>
在 onCreateOptionsMenu 里面我得到了 searchView
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.search_message_menu, menu)
searchView = menu?.findItem(R.id.searchMessageMenuItem)?.actionView as SearchView
searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
if (!query.isNullOrEmpty() && validateQuery(query))
searchViewModel.searchMessage(query)
return true
}
override fun onQueryTextChange(newText: String?): Boolean { return true }
})
return super.onCreateOptionsMenu(menu)
}
因此,当我单击搜索图标时,键盘出现并且工具栏设置为写入。
好吧,我希望这个功能在活动开始时默认发生,而不是通过单击搜索图标。我试过searchView.requestFocus() 但这不起作用!
【问题讨论】:
标签: android kotlin menu searchview oncreateoptionsmenu