Есть ли метод setText() для SearchView или что-то в этом роде? Я пытаюсь установить текст поиска в searchView, как это, но нет такого метода для этого.
searchView.setText(searchToken);
Есть ли метод setText() для SearchView или что-то в этом роде? Я пытаюсь установить текст поиска в searchView, как это, но нет такого метода для этого.
searchView.setText(searchToken);
Подумав и попробовав, я обнаружил, что в API с именем setQuery() указан метод, который вы задали для текста searchView, и вы можете отправить запрос или не использовать логический параметр.
searchView.setQuery(searchToken, false);
Вы можете использовать setQuery()
для изменения текста в текстовом поле.
Однако метод setQuery()
запускает состояние фокусировки в режиме поиска, поэтому клавиатура будет отображаться на экране после вызова этого метода.
Чтобы устранить эту проблему, просто вызовите searchView.clearFocus()
после setQuery()
метода, чтобы развернуть его, и клавиатура не будет отображаться на экране.
Пример:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
Если вы хотите предварительно SearchView
свой SearchView
каким-либо текстом, searchView.setQuery(text, false)
не будет работать из коробки. причина в том, что SearchView
расширяется
searchView.onActionViewExpanded()
вызывается, который вызывает searchView.setText("")
и очищает любой текст, который мы установили.
Решение состоит в том, чтобы установить прослушиватель Expand и установить текст pre-fil после расширения SearchView
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.main, menu)
val searchView = menu.findItem(R.id.action_search).actionView as SearchView
menu.findItem(R.id.action_search).setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
// it is important to call this before we set our own query text.
searchView.onActionViewExpanded()
searchView.setQuery("Prefil Text", false)
return true
}
override fun onMenuItemActionCollapse(item: MenuItem?) = true
})
return true
}
Попробуйте следующее:
searchView.setQueryHint("Search exchange...");
это то, что сработало для меня
MenuItem sItem = menu.findItem(R.id.search);
SearchView searchView = (SearchView) sItem.getActionView();
sItem.expandActionView();
searchView.setQuery("your text", false);