如何以编程方式从菜单中删除项目?

Upe*_*shi 6 java android

我创建了带有菜单的底部栏导航。我想通过检查一些条件来删除菜单项,所以我想使用 java 代码删除它。我已经尝试过使用它onCreateOptionsMenu(),但不知何故它不起作用。我不知道我做错了什么,将不胜感激。

     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.member_activities);        
            BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottomViewBar);
            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
            menu = bottomNavigationView.getMenu();
            MenuItem menuItem = menu.getItem(0);
            menuItem.setChecked(true);
}
  @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            this.menu = menu;
            menu.removeItem(R.id.district_tab);
            return true;
        }
Run Code Online (Sandbox Code Playgroud)

bottom_navigation_menu.xml:

<item
    android:id="@+id/member_tab"
    android:icon="@drawable/ic_person_outline"
    android:title="Member"/>
<item
    android:id="@+id/club_tab"
    android:icon="@drawable/ic_person_outline"
    android:title="Club"/>

<item
    android:id="@+id/district_tab"
    android:icon="@drawable/ic_person_outline"
    android:title="District"/>

<item
    android:id="@+id/ag_tab"
    android:icon="@drawable/ic_person_outline"
    android:title="AG"/>

<item
    android:id="@+id/dg_tab"
    android:icon="@drawable/ic_person_outline"
    android:title="DG"/>
Run Code Online (Sandbox Code Playgroud)

ext*_*mkv 8

onCreateOptionsMenu 它用于工具栏中的菜单。

对于 BottomNavigationView 中的菜单,您需要使用bottomNavigationView.getMenu().removeItem(R.id.district_tab);inonCreate方法。