Activity.onSearchRequested

Activity.onSearchRequestedは、検索が要求された時に呼ばれる。

Activity  |  Android Developers

ということだが、実際にはたとえば自作の検索ボタンが押された時に"直接"呼ぶということが多いらしい。
基本的には、親クラスのsuper.onSearchRequestedを呼ぶのが一般的。
ただ、今回はオーバーライドしてみる。

onCreateですぐ呼ぶ。

startSearchに検索キーワードに加えて、独自の文字列をBundleで渡してみる。
戻り値がtrueで検索ダイアログが表示され、falseでキャンセルとなる。

onNewIntentに来る検索用Intentをチェック。

起動時に検索キーワードが入力される
起動時に検索キーワードが入力される

起動時に検索ダイアログが表示され、検索キーワードが入力される。

確定するとonNewIntentでquwryと
確定するとonNewIntentでquwryと

確定するとonNewIntentでqueryと、

ユーザ文字列も表示される
ユーザ文字列も表示される

ユーザ文字列も表示される。
このように検索をすると、Intent.ACTION_SEARCHが飛び、自身も拾うことが出来る。

Sample/android/Activity/onSearchRequested/src/Activity at master · bg1bgst333/Sample · GitHub