微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 menu.add() 在 NavigationDrawer 菜单的 onMenuItemClick() 中不起作用,但在外面起作用?

如何解决为什么 menu.add() 在 NavigationDrawer 菜单的 onMenuItemClick() 中不起作用,但在外面起作用?

我可以完美地在onCreate()中使用Menu的add方法。但是,如果我在 onMenuItemClick() 中使用此方法,则它不起作用。只要它在他们的主体中,它就会起作用。为什么会发生这种情况?

这是我的 onCreate() 和 onMenuItemClick() 代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   
    mNavigationView = findViewById(R.id.navigation_view); // declared as a class field
    eventMenu = mNavigationView.getMenu(); // declared as a class field

    setHeaderWelcomeUser(userName); // setting up the header
    drawerAndToggle();// setting up the drawer layout

    MenuItem eventItem = eventMenu.findItem(R.id.add_custom_event);
    eventItem.setonMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            // This gets executed but does not do anything
            eventMenu.add(R.id.events,Menu.NONE,1,"New item");
            return true;
        }
    });
    // This gets executed and add "New Item" to already existing menu.
    eventMenu.add(R.id.events,"New item");
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。