我已经以编程方式向NavigationView
添加了项目:
**HERE ADD ITEMS**
Menu rightMenu = mRightDrawerView.getMenu();
for (DataParking dataParking : dataParkingList) {
MenuItem menuItem = rightMenu.add(dataParking.getTimeParking());
}
**HERE ADD CLICK LISTENER**
mRightDrawerView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
// Select menu
menuItem.setChecked(true);
// Closing left_drawer on item click
mDrawerLayout.closeDrawer(mRightDrawerView);
return false;
}
});
导航抽屉中的项目可以正确点击,但选择不是永久性的。如果我通过XML添加相同的项目一切正常。
答案 0 :(得分:4)
以编程方式添加项目时,未设置项目的可检查标志。你应该添加这一行:
menuItem.setCheckable(true);
将项目添加到菜单后。
答案 1 :(得分:0)
正如@Oncky回答的那样,你可以在你的menuItem上设置chechable:
Menu rightMenu = mRightDrawerView.getMenu();
for (DataParking dataParking : dataParkingList) {
MenuItem menuItem = rightMenu.add(dataParking.getTimeParking()).setCheckable(true);
}