【问题标题】:Add MenuItem to NavigationView programmatically - item not checked以编程方式将 MenuItem 添加到 NavigationView - 未选中项目
【发布时间】:2015-10-09 19:42:17
【问题描述】:

我已经以编程方式将项目添加到 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 添加相同的项目一切正常。

【问题讨论】:

    标签: android menuitem android-navigationview


    【解决方案1】:

    当您以编程方式添加项目时,不会设置项目的可检查标志。你应该只添加这一行:

    menuItem.setCheckable(true);
    

    将项目添加到菜单后。

    【讨论】:

      【解决方案2】:

      正如@Oncky 回答的那样,你可以像这样在你的 menuItem 上 setCheckable:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-04
        • 2013-12-25
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 2020-11-13
        • 2020-07-03
        相关资源
        最近更新 更多