Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MenuItemCompat.setOnActionExpandListener deprecated

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?

like image 628
seekingStillness Avatar asked Feb 26 '18 13:02

seekingStillness


2 Answers

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;
      }
});
like image 148
AskNilesh Avatar answered Sep 22 '22 05:09

AskNilesh


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;
        }
    });
like image 32
Manohar Avatar answered Sep 23 '22 05:09

Manohar