¿Existe un método setText () para SearchView o algo así? Intento establecer el texto de búsqueda en searchView de esta manera, pero no hay un método para esto.
searchView.setText(searchToken);
¿Existe un método setText () para SearchView o algo así? Intento establecer el texto de búsqueda en searchView de esta manera, pero no hay un método para esto.
searchView.setText(searchToken);
Respuestas:
Después de preguntarme e intentar, descubrí que hay un método en la API llamado setQuery () en el que configuras el texto searchView y puedes optar por enviar la búsqueda o no usar el parámetro booleano.
searchView.setQuery(searchToken, false);
true
que la consulta también se ejecute, pero tenga en cuenta que aunque la consulta se ejecuta bien, el cuadro de texto permanece en blanco, hasta que se le da el enfoque manualmente. ¿Cómo puedo asegurarme de que el valor de ajuste automático también se muestre automáticamente?
Puede usar setQuery()
para cambiar el texto en el cuadro de texto.
Sin embargo, el setQuery()
método activa el estado de enfoque de una vista de búsqueda, por lo que se mostrará un teclado en la pantalla después de que se haya invocado este método.
Para solucionar este problema, simplemente llame searchView.clearFocus()
al setQuery()
método siguiente para desenfocarlo y el teclado no se mostrará en la pantalla.
Ejemplo:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
Si desea pre-llenar su SearchView
con algún texto searchView.setQuery(text, false)
no funcionaría de la caja. la razón es cuando SearchView
se expande
searchView.onActionViewExpanded()
ser llamado que llama searchView.setText("")
y borra cualquier texto que hayamos configurado.
La solución es configurar un oyente Expandir y configurar el texto de prefiltrado una vez que SearchView
se expande
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
}
Si desea que searchView se expanda y se puede reducir a un icono después de que el usuario toque x (cerrar), la forma es:
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: Si lo expande usando:
searchView.onActionViewExpanded()
searchView no se encogerá después de que el usuario toque x (cerrar)