1

このガイドに従って、アクションバー SearchView ウィジェットをアクティビティに追加しています: http://developer.android.com/training/search/setup.html

このページを除いて動作しています: http://developer.android.com/training/search/backward-compat.html 「ユーザーが検索メニューを選択すると、3.0 より古いバージョンのみが onOptionsItemSelected() を呼び出す」と書かれていますitem」なので、古いデバイスでこの検索ボタンが押されたときに onOptionsItemSelected で onSearchRequested() を呼び出すことができます。しかし、Jellybean でそれをテストすると、検索ボタンを押すと、検索ビューが展開されるだけでなく、検索ダイアログも開くため、2 つの検索ウィジェットが重なり合っています。

3.0以降のデバイスで検索ボタンが押されたときに onOptionsItemSelected() がまだ呼び出されているようですが、ガイドにはそうではありません。私はそれを間違って実装していますか?新しいプロジェクトを作成してガイドに正確に従ってみましたが、同じ動作をしています。

4

1 に答える 1

1

これは私の解釈が間違っていました。ドキュメントには、ハードウェア検索ボタンは onOptionsItemSelected をトリガーせず、代わりに searchView を展開すると書かれていると思いました。しかし、実際には、検索メニュー オプションが onOptionsItemSelected をトリガーしないと言っているだけです。

これを修正するために、onSearchRequested をオーバーライドし、そこで searchView を拡張しました

于 2012-12-03T08:53:28.057 に答える