首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SearchView in actionBar

SearchView in actionBar
EN

Stack Overflow用户
提问于 2015-07-21 13:20:27
回答 2查看 105关注 0票数 0

我遵循代码在ActionBar中实现了SearchView (作为菜单中的一个项)。

但当我到达这条线

代码语言:javascript
复制
mSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

getActionView()返回一个null值。

我不知道是怎么回事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-21 13:43:19

试着替换

代码语言:javascript
复制
mSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

使用

代码语言:javascript
复制
mSearchMenuItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(mSearchMenuItem);
票数 2
EN

Stack Overflow用户

发布于 2015-07-21 13:31:28

试试这个..。

代码语言:javascript
复制
private SearchView mSearchView;

....
....

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
             // Inflate the menu items for use in the action bar
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.activity, menu);

            MenuItem searchItem = menu.findItem(R.id.action_search);
            mSearchView = (SearchView) searchItem.getActionView();
            setupSearchView(searchItem);

            return super.onCreateOptionsMenu(menu);
        }

        private void setupSearchView(MenuItem searchItem) {

            if (isAlwaysExpanded()) {
                mSearchView.setIconifiedByDefault(false);
            } else {
                searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM
                        | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
            }

            mSearchView.setOnQueryTextListener(this);
         }

         public boolean onQueryTextChange(String newText) {

                //Query

                return false;
         }

         public boolean onQueryTextSubmit(String query) {

                //query

                return false;
         }

         public boolean onClose() {
                return false;
         }

         protected boolean isAlwaysExpanded() {
                return false;
         }

别忘了实现搜索视图。

代码语言:javascript
复制
implements SearchView.OnQueryTextListener
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31540235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档