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

除了 onCreate() 和 onResume() 的主体之外,NavigationView 菜单的 .add 不起作用

如何解决除了 onCreate() 和 onResume() 的主体之外,NavigationView 菜单的 .add 不起作用

这是Process.loadModule('lib.so')代码

onNavigationItemSelcted

不过,我可以完美地在onCreate()和onResume()中使用这个add方法。但是,如果我在 onCreate() 或 onResume() 的 onClick() 中使用此方法,则它不起作用。只要它在他们的主体中,它就会起作用。

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

    Menu eventMenu = mNavigationView.getMenu();
    eventMenu.add(R.id.events,Menu.NONE,1,"newEvent").setIcon(R.drawable.hangouts_white);
    // extra code
}

但如果用户选择“添加项目”(导航抽屉中的菜单项之一),我需要添加一个项目。我缺少什么或我应该添加什么?

这是我的导航视图的 nav_menu XML

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   
    mNavigationView = findViewById(R.id.navigation_view);
 
    drawerAndToggle();//For drawerlayout setup
    
    Menu eventMenu = mNavigationView.getMenu();
    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,"New item");
            return true;
        }
    });
    // This one works fine
    eventMenu.add(R.id.events,"New item");
}

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