我怎样才能获得当前选定的导航抽屉项目?我的菜单存储在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;
}
});
例如,您可以使用:
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;
}
您可以通过以下方式查看当前是否选择了某个项目:
if(navigationView.getMenu().findItem(R.id.nav_item).isChecked())
//do some stuff
你有OnNavigationItemSelectedListener
,方法是onNavigationItemSelected(MenuItem item)
,每次选择新项目时都会调用它。这个item
有方法getItemId()
将返回id,并获得getOrder()
,它将返回位置。
在你的类中创建int
var,保存此id。
例如,您可以稍后将其保存到onSaveInstanceState
上,然后将其恢复到onRestorInstanceState
。并使用navigationView.setCheckedItem(savedItemId);
应用它。