以编程方式将MenuItem添加到NavigationView-未选中该项目

Sim*_*one 2 android menuitem android-navigationview

我已经以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;
        }
    });
Run Code Online (Sandbox Code Playgroud)

导航抽屉中的项目可正确单击,但选择不是持久的。如果我通过XML添加相同的项目,则效果很好。

小智 6

以编程方式添加项目时,未设置项目的checkable标志。您应该只添加以下行:

menuItem.setCheckable(true);
Run Code Online (Sandbox Code Playgroud)

将项目添加到菜单后。