SearchView などの setText() メソッドはありますか? このようにsearchViewに検索テキストを設定しようとしましたが、このような方法はありません。
searchView.setText(searchToken);
SearchView などの setText() メソッドはありますか? このようにsearchViewに検索テキストを設定しようとしましたが、このような方法はありません。
searchView.setText(searchToken);
疑問に思って試してみたところ、setQuery() という名前の API にメソッドがあり、searchView テキストを設定し、検索を送信するか、ブール値パラメーターを使用しないかを選択できることがわかりました。
searchView.setQuery(searchToken, false);
を使用setQuery()
して、テキストボックス内のテキストを変更できます。
ただし、setQuery()
メソッドは検索ビューのフォーカス状態をトリガーするため、このメソッドが呼び出された後にキーボードが画面に表示されます。
この問題を解決するには、メソッドのsearchView.clearFocus()
後に呼び出しsetQuery()
てフォーカスを外すだけで、キーボードが画面に表示されなくなります。
例:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();