Existe um método setText () para SearchView ou algo parecido? Tento definir o texto de pesquisa no searchView desta forma, mas não há nenhum método para fazer isso.
searchView.setText(searchToken);
Existe um método setText () para SearchView ou algo parecido? Tento definir o texto de pesquisa no searchView desta forma, mas não há nenhum método para fazer isso.
searchView.setText(searchToken);
Respostas:
Depois de pensar e tentar, descobri que existe um método na API chamado setQuery () no qual você define o texto searchView e pode optar por enviar a pesquisa ou não usando o parâmetro booleano.
searchView.setQuery(searchToken, false);
true
que a consulta seja executada também, mas observe que, embora a consulta seja bem executada, a caixa de texto permanece em branco, até quando o foco é dado manualmente. Como posso garantir que o valor definido automaticamente também seja exibido automaticamente?
Você pode usar setQuery()
para alterar o texto na caixa de texto.
No entanto, o setQuery()
método aciona o estado de foco de uma visualização de pesquisa, portanto, um teclado será exibido na tela após esse método ter sido invocado.
Para corrigir esse problema, basta ligar searchView.clearFocus()
depois setQuery()
método para desfocar-lo e o teclado não irá mostrar na tela.
Exemplo:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
Se você quiser pré-preencher SearchView
com algum texto searchView.setQuery(text, false)
, não funcionará fora da caixa. a razão é quando SearchView
se expande
searchView.onActionViewExpanded()
é chamado o que chama searchView.setText("")
e limpa qualquer texto que definimos.
Solução é definir um ouvinte Expandir e definir o texto pré-fil uma vez que o SearchView
é expandido
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
}
Se você quiser que o searchView se expanda e possa ser reduzido a um ícone depois que o usuário tocar em x (fechar), o método é:
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.
NOTA: Se você expandir usando:
searchView.onActionViewExpanded()
searchView não diminuirá depois que o usuário tocar em x (fechar)