読者です 読者をやめる 読者になる 読者になる

kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

SearchViewを使って検索のインテントを発行する

SearchViewを使って検索のインテントを発行する方法です。

ウィジェットとして任意の位置に配置できるほうのSearchViewです。
画面上部に現れる検索ダイアログや、アクションバーに組み込まれている検索ボックスではありません。

SearchView searchView = (SearchView)baseV.findViewById(R.id.searchView);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
        intent.putExtra(SearchManager.QUERY,query);
        startActivity(intent);
        return true;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        return false;
    }
 });

検索開始のボタン(虫眼鏡のアイコン)が押された時は、
onQueryTextSubmitが呼ばれ、検索ボックスに入力されたテキストは(String型)queryとして渡されます。
黙示的インテントを発行し、外部アプリで検索を行います。

サーチビューに文字列をセットするときは、
setQuery(CharSequence query,boolean submit)
を使い、第二引数には、すぐに検索するかどうかをboolean型で指定します。