Simone
Simone

Reputation: 805

Add MenuItem to NavigationView programmatically - item not checked

I've added items to NavigationView programmatically:

**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;
        }
    });

Items in navigation drawer are correctly clickable, but the selection is not persistent. If I add the same items via XML all works well.

Upvotes: 2

Views: 1182

Answers (2)

Reza
Reza

Reputation: 93

As @Oncky answered, you can just setCheckable on your menuItem like this:

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

Upvotes: 0

Oncky
Oncky

Reputation: 86

When you are adding an item programmatically, the item's checkable flag is not set. You should just add this line:

menuItem.setCheckable(true);

after adding an item to menu.

Upvotes: 6

Related Questions