5

テキスト フィールドを開いた状態で SearchView を使用してアクティビティを開始するにはどうすればよいですか。このようにして、スパイグラスをクリックしなくても検索できました。シャーロック アクション バーを使用しています。

これが私のコードです:

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {

     final SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
        searchView.setQueryHint("Cerca domande");

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                if (query.length() != 0) {

                    // handle search here
                    return true;
                }
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {

                 if (newText.length()>=3) {
                     new PostTask().execute(newText);   

                     Util.setSharedPreferences(SearchActivity.this, "lastsearch", newText);
                 }
                return false;
            }
        });

        menu.add("Search")
            .setIcon(ic_search_inverse)
            .setActionView(searchView)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);


        listsearch.setOnItemClickListener(this);

     return true;
    }

ありがとう。

4

2 に答える 2

15

これを試しましたか?

searchMenu.expandActionView();

OnCreateOptionsMenu()

menu.add("Search")
            .setIcon(ic_search_inverse)
            .setActionView(searchView)
            .expandActionView();
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

フォーカスを追加し、ソフトキーボードを開くことができます。これで、ユーザーが入力して検索できるようになります。

しかし、これは標準的な動作ではありません。

于 2013-03-02T09:15:58.097 に答える