The following code allows to display a small suggestion window in my searchview :
I'm searching a way to display this view at the beginning by default when the user click on the search item on the menu.
Is there any way to force this behavior ?
val from = arrayOf(SearchManager.SUGGEST_COLUMN_TEXT_1)
val to = intArrayOf(R.id.item_label)
val cursorAdapter = SimpleCursorAdapter(context, R.layout.search_item, null, from, to, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER)
val suggestions = listOf("Apple", "Blueberry", "Carrot", "Daikon")
searchView.suggestionsAdapter = cursorAdapter
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
hideKeyboard()
return false
}
override fun onQueryTextChange(query: String?): Boolean {
val cursor = MatrixCursor(arrayOf(BaseColumns._ID, SearchManager.SUGGEST_COLUMN_TEXT_1))
query?.let {
suggestions.forEachIndexed { index, suggestion ->
if (suggestion.contains(query, true)) {
cursor.addRow(arrayOf(index, suggestion))
}
}
}
cursorAdapter.changeCursor(cursor)
return true
}
})
searchView.setOnSuggestionListener(object: SearchView.OnSuggestionListener {
override fun onSuggestionSelect(position: Int): Boolean {
return false
}
override fun onSuggestionClick(position: Int): Boolean {
hideKeyboard()
val cursor = searchView.suggestionsAdapter.getItem(position) as Cursor
val selection = cursor.getString(cursor.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1))
searchView.setQuery(selection, false)
// Do something with selection
return true
}
})
from Android Searchview : Open suggestions list dropdown by default
No comments:
Post a Comment