在SearchView打开时启动活动

时间:2013-03-02 08:40:59

标签: android searchview

如何在打开文本字段的情况下使用SearchView启动活动。 通过这种方式,我可以搜索而无需点击望远镜。 我正在使用Sherlock Action Bar。

这是我的代码:

   @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 个答案:

答案 0 :(得分: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);

你可以添加焦点,打开软键盘。因此,用户可以输入和搜索所有内容。

但这不是标准行为。

答案 1 :(得分:2)

你可以试试这个:

mSearchView.setIconifiedByDefault(false);