3

この問題に関する議論がこれ以上ないなんて信じられません。明らかな何かが欠けていますか?

音声が有効になっている SearchView ウィジェットでのアクティビティがあります。これは singleTop インスタンスであるため、同じアクティビティで検索インテントをキャッチできます。

ユーザーが音声を使用して入力する場合、実際の検索が行われる前に、(必要に応じて) 修正するためにクエリ テキストをユーザーに表示したいと考えています。

私の onNewIntent() メソッドでは、音声からクエリ テキストを取得し、検索テキスト ボックスを更新する検索意図を処理します。

ただし、テキスト ボックスにクエリ テキストを設定するとすぐに、SearchViews テキストで新しい検索インテントがトリガーされます。そして同じことが私の onNewIntent() によって受け取られます。

これは無限ループに陥っています。

リスナーがテキスト ボックスから検索テキストを直接キャッチすることを期待して、SearchView の OnQueryTextListener を設定しようとしました。ただし、新しい検索インテントがトリガーされるのを止めることはできませんでした。

私はSearchViewをあきらめようとしています。音声と提案機能が欲しかったので、誰かがこの問題の解決策を提案してくれることを願っています.

4

1 に答える 1

2

修理済み。問題は、クエリ テキストをテキスト ボックスに表示するための呼び出しでした。searchView.setQuery(query, false) は 2 つのパラメーターを取り、2 番目のパラメーターは、ボックスに配置した後にテキストを送信する必要があるかどうかを示します。例からコードをコピーしたに違いなく、2 番目のパラメーターに注意を払っていませんでした。これは「true」でしたが、この場合は「false」にする必要があります。

于 2013-10-24T13:34:51.037 に答える