【发布时间】:2019-09-24 20:32:52
【问题描述】:
我有一个这样的搜索菜单项
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:icon="@drawable/search_icon"
android:title="Search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always|collapseActionView"/>
</menu>
我正在夸大它,然后像这样为 SearchView 设置侦听器
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.search_menu_item, menu)
return true
}
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
val mSearchMenuItem = menu?.findItem(R.id.action_search)
mSearchMenuItem?.setOnActionExpandListener(object : MenuItem.OnActionExpandListener{
override fun onMenuItemActionExpand(p0: MenuItem?): Boolean {
return true
}
override fun onMenuItemActionCollapse(p0: MenuItem?): Boolean {
return true
}
})
searchView = mSearchMenuItem?.actionView as SearchView
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean {
samSearchViewModel.searchData(query)
return false
}
override fun onQueryTextChange(newText: String): Boolean {
if (newText.length >= 3) {
samSearchViewModel.searchData(newText)
}
return false
}
})
searchView.setOnCloseListener(object : SearchView.OnCloseListener {
override fun onClose(): Boolean {
return false
}
})
return true
}
然后我在从服务器取回数据后尝试使用这样的 SimpleCursorAdapter 显示它。
val strArr: Array<String?> = arrayOfNulls(t.datas?.size!!)
for(i in t.datas!!.indices){
strArr[i] = t.datas!![i]?.symbol
}
val searchManager = getSystemService(SEARCH_SERVICE) as SearchManager
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()))
val to = intArrayOf(android.R.id.text1)
searchView.setIconifiedByDefault(false)
searchView.setSuggestionsAdapter(SimpleCursorAdapter(this@MainActivity,android.R.layout.simple_list_item_1,null,strArr,to,CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER))
所以发生的事情是,我可以展开 SearchView,输入它,然后我也从服务器获取数据,但是搜索建议列表没有弹出。它只是空白。 我错过了什么?任何帮助,将不胜感激。谢谢
【问题讨论】:
-
您想在哪里显示建议?在像 AutoCompleteTextView 一样的搜索视图中??
-
是的,就在工具栏的下方
标签: android kotlin searchview simplecursoradapter