MenuItemCompat.setOnActionExpandListener deprecated

…衆ロ難τιáo~ 提交于 2019-11-27 02:48:06

问题


I have some code that sets a boolean if the search view is open or not.

MenuItemCompat.setOnActionExpandListener(action_search, new MenuItemCompat.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item){
                isSearch = true;
                return true;
            }
            @Override
            public boolean onMenuItemActionCollapse(MenuItem item){
                isSearch = false;
                return true;
            }
        });

It works. I'm happy with the way it responds. However, it it shows as deprecated, the setOnActionExpandListener is crossed out with the warning

android.support.v4.view.MenuItemCompat.setOnActionExpandListener is deprecated

Suggestions?


回答1:


android.support.v4.view.MenuItemCompat.setOnActionExpandListener is deprecated

Yes MenuItemCompat.setOnActionExpandListener This method was deprecated in API level 26.1.0.

Suggestions?

Use MenuItem.setOnActionExpandListener(MenuItem.OnActionExpandListener) directly.

  • MenuItemCompat.OnActionExpandListener on this menu item to be notified when the associated action view is expanded or collapsed. The menu item must be configured to expand or collapse its action view using the flag SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.

SAMPLE CODE

MenuItem item = menu.findItem(R.id.action_order);
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
     @Override
      public boolean onMenuItemActionExpand(MenuItem menuItem) {
          isSearch = true;
          return true;
      }

      @Override
      public boolean onMenuItemActionCollapse(MenuItem menuItem) {
           isSearch = false;
           return true;
      }
});



回答2:


This interface was deprecated in API level 26.1.0.

Instead of MenuItemCompat.OnActionExpandListener

Use MenuItem.OnActionExpandListener directly.

Official Documentation

Sample:

  MenuItem menuItemSearch = menu.findItem(R.id.action_search);

     menuItemSearch.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionExpand(MenuItem menuItem) {
            isSearch = true;
            return true;
        }

        @Override
        public boolean onMenuItemActionCollapse(MenuItem menuItem) {
            isSearch = false;
            return true;
        }
    });

Bonus

setting OnQueryTextListener and OnCloseListener

    MenuItem menuItemSearch = menu.findItem(R.id.action_search);

  final SearchView searchView = (SearchView) menuItemSearch.getActionView();

     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {

          //Do something

            return false;
        }

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

    searchView.setOnCloseListener(new SearchView.OnCloseListener() {
        @Override
        public boolean onClose() {

        // do something
            return false;
        }
    });


来源:https://stackoverflow.com/questions/48989235/menuitemcompat-setonactionexpandlistener-deprecated

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!