2015-10-09 8 views
1

Я добавил элементы в NavigationView программно:Добавить MenuItem в 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, все работает хорошо.

ответ

4

Когда вы добавляете элемент программно, флажок itemable checkable не установлен. Вы должны просто добавить эту строку:

menuItem.setCheckable(true); 

после добавления пункта в меню.

0

Как ответил @Oncky, вы можете просто установить chechable на вашем MENUITEM так:

Menu rightMenu = mRightDrawerView.getMenu(); 
for (DataParking dataParking : dataParkingList) { 
    MenuItem menuItem = rightMenu.add(dataParking.getTimeParking()).setCheckable(true); 
}