How to get MenuItem position in the listener using the new NavigationView

后端 未结 5 1245
攒了一身酷
攒了一身酷 2020-12-19 02:44

The topic says it all. How should I go about retrieving the item position on the onClick listener using NavigationView? Also, why is there no getHeader method? Lastly I am d

5条回答
  •  鱼传尺愫
    2020-12-19 03:21

    UPDATE

    You can get position using this trick

    final List items = new ArrayList<>();
    Menu menu;
    
    NavigationView navigationView = (NavigationView) findViewById(R.id.navigation);.
    menu = navigationView.getMenu();
    
    for(int i = 0; i < menu.size(); i++){
        items.add(menu.getItem(i));
    }
    
    navigationView.setNavigationItemSelectedListener(new  NavigationView.OnNavigationItemSelectedListener(){
        @Override
        public boolean onNavigationItemSelected(final MenuItem menuItem) {
            // update highlighted item in the navigation menu
            menuItem.setChecked(true);
            int position = items.indexOf(menuItem);
    
            return true;
        }
    });
    

提交回复
热议问题