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

时间:2018-02-05 11:08:45

标签: 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;
        }

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"/>

3 个答案:

答案 0 :(得分:4)

onCreateOptionsMenu用于工具栏中的菜单。

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

答案 1 :(得分:2)

试试这个请:

bottomNavigationView.getMenu().removeItem(R.id.district_tab);

答案 2 :(得分:1)

您必须使用底部导航视图的参考来删除项目:

bottomNavigationView.getMenu().removeItem(R.id.district_tab);