Existe-t-il une méthode setText () pour SearchView ou quelque chose du genre?.
searchView.setText(searchToken);
Après m'être demandé et avoir essayé, j'ai découvert qu'il existait une méthode dans l'API nommée setQuery () dans laquelle vous définissiez le texte searchView et que vous pouviez choisir de soumettre la recherche ou de ne pas utiliser le paramètre boolean.
searchView.setQuery(searchToken, false);
Vous pouvez utiliser setQuery()
pour modifier le texte dans la zone de texte.
Cependant, la méthode setQuery()
déclenche l'état de focus d'une vue de recherche, de sorte qu'un clavier s'affiche à l'écran après l'appel de cette méthode.
Pour résoudre ce problème, il suffit d'appeler la méthode searchView.clearFocus()
après la méthode setQuery()
pour la déconcentrer et le clavier ne s'affichera pas à l'écran.
Exemple:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
c'est ce qui a fonctionné pour moi
MenuItem sItem = menu.findItem(R.id.search);
SearchView searchView = (SearchView) sItem.getActionView();
sItem.expandActionView();
searchView.setQuery("your text", false);