web-dev-qa-db-fra.com

MenuItemCompat.setOnActionExpandListener déconseillé

J'ai du code qui définit un booléen si la vue de recherche est ouverte ou non.

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

Ça marche. Je suis satisfait de la façon dont il réagit. Cependant, il apparaît comme obsolète, le setOnActionExpandListener est barré avec l'avertissement

Android.support.v4.view.MenuItemCompat.setOnActionExpandListener est déconseillé

Suggestions?

12
seekingStillness

Android.support.v4.view.MenuItemCompat.setOnActionExpandListener Est déconseillé

Oui MenuItemCompat.setOnActionExpandListener Cette méthode est déconseillée au niveau API 26.1.0.

Suggestions?

Utilisez MenuItem.setOnActionExpandListener(MenuItem.OnActionExpandListener) directement.

  • MenuItemCompat.OnActionExpandListener sur cet élément de menu pour être averti lorsque l'action associée view est développée ou réduite. Le menu item Doit être configuré pour développer ou réduire son action view à l'aide de l'indicateur SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.

EXEMPLE DE 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;
      }
});
28
Nilesh Rathod

Cette interface est obsolète au niveau de l'API 26.1.0.

Au lieu de MenuItemCompat.OnActionExpandListener

Utilisation MenuItem.OnActionExpandListener directement.

Documentation officielle

Exemple:

  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

définition OnQueryTextListener et 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;
        }
    });
7
Manohar Reddy