Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 导航抽屉动态菜单项Id问题_Android_Dynamic_Navigation_Navigation Drawer - Fatal编程技术网

Android 导航抽屉动态菜单项Id问题

Android 导航抽屉动态菜单项Id问题,android,dynamic,navigation,navigation-drawer,Android,Dynamic,Navigation,Navigation Drawer,我正在尝试在导航抽屉中设置动态菜单项。我成功了。但是,当有人点击菜单项时,如何调用意图传递和一些数据呢 这是我设置动态菜单项的代码 private void addMenuItemInNavMenuDrawer() { NavigationView navView = (NavigationView) findViewById(R.id.nav_view); Menu menu = navView.getMenu(); for (int i = 0; i < ca

我正在尝试在导航抽屉中设置动态菜单项。我成功了。但是,当有人点击菜单项时,如何调用意图传递和一些数据呢

这是我设置动态菜单项的代码

private void addMenuItemInNavMenuDrawer() {

    NavigationView navView = (NavigationView) findViewById(R.id.nav_view);
    Menu menu = navView.getMenu();
    for (int i = 0; i < catTitleList.size(); i++) {
        menu.add(Menu.NONE, Integer.parseInt(catIdList.get(i)), Menu.NONE, catTitleList.get(i));
    }

    navView.invalidate();
}

您可以使用与资源定义的菜单项完全相同的方法来执行此操作。你有什么特别的问题?你的兽医有多活跃?你怎么知道列表中的哪个项目会有什么目的?@MikeM。问题是,我在catTitleList()中获得了动态类别标题。因为我必须设置与我的类别标题和Id相同的菜单。我正在为菜单设置动态标题和ID,如您在AddMenuItemNavMenuDrawer()中看到的。问题是如何为具有动态id的动态manu执行onNavigationItemSelected(MenuItem项)。我不确定是否正确理解该问题,但您不一定需要将类别id用于菜单项id。您可以简单地将索引用作菜单id–即,
menu.add(menu.NONE,I,…)
–然后在
onNavigationItemSelected()
中,您可以使用
item.getItemId()
从列表中获取实际的类别ID及其标题。除此之外,我要提到的是,如果您创建一个带有ID和标题字段的
Category
类,并保留一个
列表,那么处理这些事情可能会更容易。不过,这与您当前的问题并不相关
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    NavigationView nv = findViewById(R.id.nav_view);
    Menu m = nv.getMenu();
    int id = item.getItemId();

    int catId = Integer.parseInt(catIdList.get(0));
    if (id == R.id.nav_ebook) {

        if (!m.findItem(catId).isVisible()) {
            m.findItem(catId).setVisible(true);

        } else if (m.findItem(catId).isVisible()) {

            m.findItem(catId).setVisible(false);

        }
     } else (id == CatId) {
        String tag = viewAll1.getTag().toString();
        Intent i = new Intent(this, AllSubCategory.class);
        i.putExtra("ID", tag);
        startActivity(i);
     }
    return true;
}