Есть ли метод setText () для SearchView или что-то в этом роде? Я пытаюсь установить текст для поиска в searchView таким образом, но для этого нет метода.
searchView.setText(searchToken);
android
searchview
Халед Аннаджар
источник
источник
true
таким образом, чтобы запрос также выполнялся, но обратите внимание, что, хотя запрос выполняется хорошо, текстовое поле остается пустым до тех пор, пока не будет установлен фокус вручную. Как обеспечить автоматическое отображение автоматически установленного значения?Вы можете использовать
setQuery()
для изменения текста в текстовом поле.Однако
setQuery()
метод запускает состояние фокуса представления поиска, поэтому клавиатура будет отображаться на экране после вызова этого метода.Чтобы решить эту проблему, просто вызовите метод
searchView.clearFocus()
после,setQuery()
чтобы расфокусировать его, и клавиатура не будет отображаться на экране.Пример:
String suggestWord = intent.getDataString(); searchView.setQuery(suggestWord, false); searchView.clearFocus();
источник
это то, что сработало для меня
MenuItem sItem = menu.findItem(R.id.search); SearchView searchView = (SearchView) sItem.getActionView(); sItem.expandActionView(); searchView.setQuery("your text", false);
источник
Если вы хотите предварительно заполнить
SearchView
текст каким-либо текстомsearchView.setQuery(text, false)
, из коробки не получится. причина в том, когдаSearchView
расширяетсяsearchView.onActionViewExpanded()
get, который вызывает
searchView.setText("")
и очищает любой текст, который мы установили.Решение состоит в том, чтобы установить прослушиватель Expand и установить предварительно заполненный текст после
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 расширился и его можно было сжать до значка после того, как пользователь коснется x (закрыть), способ:
searchView.isIconified = false // Expand it searchView.setQuery("your text here", false) // true if you want to submit, otherwise false searchView.clearFocus() // so the keyboard is not show up.
ПРИМЕЧАНИЕ. Если вы расширите его, используя:
searchView.onActionViewExpanded()
searchView не сжимается после нажатия пользователем x (закрыть)
источник