使用已打开的SearchView启动Activity

5

如何使用打开文本字段的SearchView启动活动。这样我就可以搜索而不必点击放大镜。我正在使用Sherlock ActionBar。

以下是我的代码:

   @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;
    }

感谢您。
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);

你可以添加焦点,打开软键盘。这样一切都准备就绪,用户可以输入并搜索。
但这不是标准行为。

我正在研究你的回答 @Archie.bpgc,并搜索关于expandActionView()的内容。无论如何,在我的代码中没有searchMenu对象。谢谢! - Gyonder
通过searchMenu,我指的是您添加到菜单中的搜索菜单项。 - Archie.bpgc
1
在 searchMenu 上调用 expandActionView() 对我没有起作用。但是在 ActionView 上调用 searchView.setIconified(false) 可以默认打开文本输入。 - bk138

3

你可以尝试这个:

mSearchView.setIconifiedByDefault(false);

这并没有提供问题的答案。如果您想对作者进行批评或请求澄清,请在他们的帖子下留言 - 您始终可以在自己的帖子上发表评论,并且一旦您拥有足够的声望,您将能够评论任何帖子。 - bummi
看起来是一个有效的建议,但如果你不是真的在问问题,你应该把它写成一个答案。或者,如果你正在寻求澄清,可以将其作为评论发布。 - Caleb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接