Get Current Selected Item of Navigation Drawer in Android

白昼怎懂夜的黑 提交于 2019-12-06 02:46:35

问题


How can i get Current selected item of navigation drawer? My menu is stored in drawer_menu.xml

navigationView = (NavigationView) findViewById(R.id.navigation_view);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.change_sec:
                    Intent intent_sec = new Intent(MainActivity.this, ClassDataProvider.class);
                    startActivityForResult(intent_sec, 9);
                    drawerLayout.closeDrawers();
                    break;
                case R.id.holiday_list:
                    Intent intent = new Intent(MainActivity.this, HolidayList.class);
                    startActivity(intent);
                    drawerLayout.closeDrawers();
                    break;
            }
            return true;
        }
    });

回答1:


For example, you can use:

private int getCheckedItem(NavigationView navigationView) {
    Menu menu = navigationView.getMenu();
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getMenu(i);
        if (item.isChecked()) {
            return i;
        }
    } 

    return -1;
}



回答2:


You can find out if an item is current selected with this:

if(navigationView.getMenu().findItem(R.id.nav_item).isChecked())
//do some stuff



回答3:


You've got OnNavigationItemSelectedListener, with method onNavigationItemSelected(MenuItem item), which is called every time new item is selected. This item has methods getItemId() which will return id, and get getOrder(), which will return position.

Create int var in your class, save this id.

For example you can save it to bundle later on onSaveInstanceState, then get it back on onRestorInstanceState. And apply it using navigationView.setCheckedItem(savedItemId);.



来源:https://stackoverflow.com/questions/38336538/get-current-selected-item-of-navigation-drawer-in-android

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