Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
Java 如何使用id在组中添加菜单?_Java_Android_Xml_Android Studio_Navigation Drawer - Fatal编程技术网

Java 如何使用id在组中添加菜单?

Java 如何使用id在组中添加菜单?,java,android,xml,android-studio,navigation-drawer,Java,Android,Xml,Android Studio,Navigation Drawer,我正在开发我的android应用程序,以便使用id在组中添加菜单。我在组中添加菜单时遇到问题,因为它将添加导航抽屉底部的菜单,而不添加使用id的组 以下是它所展示的: 这就是我尝试过的: menu.addSubMenu(R.id.nav_group1, 1, 100, "test1") .setIcon(R.drawable.ic_baseline_folder_24); menu.addSubMenu(R.id.nav_group1, 2, 101, &quo

我正在开发我的android应用程序,以便使用id在组中添加菜单。我在组中添加菜单时遇到问题,因为它将添加导航抽屉底部的菜单,而不添加使用id的组

以下是它所展示的:

这就是我尝试过的:

menu.addSubMenu(R.id.nav_group1, 1, 100, "test1")
      .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.nav_group1, 2, 101, "test2")
      .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.nav_group1, 3, 102, "test4")
      .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.nav_group1, 4, 103, "test new folder")
      .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.nav_group1, 5, 104, "test new folder backup")
     .setIcon(R.drawable.ic_baseline_folder_24);
我也试过:

menu.add(R.id.nav_group1, 1, 100, "test1")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 2, 101, "test2")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 3, 102, "test4")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 5, 104, "test new folder")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 5, 104, "test new folder backup")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 1, 100, "test1")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 2, 101, "test2")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 3, 102, "test4")
     .setIcon(R.drawable.ic_baseline_folder_24);
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 5, 104, "test new folder backup")
     .setIcon(R.drawable.ic_baseline_folder_24);
我也试过:

menu.add(R.id.nav_group1, 1, 100, "test1")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 2, 101, "test2")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 3, 102, "test4")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 5, 104, "test new folder")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 5, 104, "test new folder backup")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 1, 100, "test1")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 2, 101, "test2")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 3, 102, "test4")
     .setIcon(R.drawable.ic_baseline_folder_24);
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.addSubMenu(R.id.second_group, 5, 104, "test new folder backup")
     .setIcon(R.drawable.ic_baseline_folder_24);
完整代码:

DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
Menu menu = navigationView.getMenu();
menu.add(R.id.nav_group1, 1, 100, "test1")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 2, 101, "test2")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 3, 102, "test4")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 5, 104, "test new folder")
     .setIcon(R.drawable.ic_baseline_folder_24);
menu.add(R.id.nav_group1, 5, 104, "test new folder backup")
     .setIcon(R.drawable.ic_baseline_folder_24);
活动\u main\u drawer.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_inbox"
            android:icon="@drawable/ic_baseline_inbox_24"
            android:title="Inbox1" />
        <item
            android:id="@+id/nav_important"
            android:icon="@drawable/ic_baseline_important_24"
            android:title="Important" />
        <item
            android:id="@+id/nav_outbox"
            android:icon="@drawable/ic_baseline_outbox_24"
            android:title="Outbox" />
        <item
            android:id="@+id/nav_sent"
            android:icon="@drawable/ic_baseline_sent_mail_24"
            android:title="Sent" />
        <item
            android:id="@+id/nav_drafts"
            android:icon="@drawable/ic_baseline_draft_24"
            android:title="Drafts" />
        <item
            android:id="@+id/nav_spam"
            android:icon="@drawable/ic_baseline_spam_24"
            android:title="Spam" />
        <item
            android:id="@+id/nav_trash"
            android:icon="@drawable/ic_baseline_trash_24"
            android:title="Trash" />
    </group>

    <group android:visible="false" android:id="@+id/second_group" />

    <group android:id="@+id/nav_group1">
        <item
            android:title="Folders" />
    </group>

    <group android:id="@+id/nav_group2">
        <item
            android:id="@+id/nav_create_new_folder"
            android:icon="@drawable/ic_baseline_add_24"
            android:title="Create New" />
    </group>
</menu>

我试图实现的是,我希望使用名为
nav_group1
的id在组中添加菜单项

像这样:


您能给我举个例子,说明如何使用id将菜单添加到组中吗?

您需要使用
orderInCategory
。您已经将订单分配给以编程方式添加的菜单项

问题出在XML中,当未为编号分配编号时,默认值为零。当您以编程方式添加菜单项时,您指定了更高的
orderInCategory
将这些菜单项定位在底部

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">

    <group android:checkableBehavior="single"
           android:orderInCategory="10">
        ...
    </group>

    <group android:visible="false" android:id="@+id/second_group" />

    <group android:id="@+id/nav_group1"
           android:orderInCategory="100">
        <item
            android:title="Folders" />
    </group>

    <group android:id="@+id/nav_group2"
           android:orderInCategory="200">
        <item
            android:id="@+id/nav_create_new_folder"
            android:icon="@drawable/ic_baseline_add_24"
            android:title="Create New" />
    </group>
</menu>

我在理解你的问题时遇到了一些困难。@Shawn你不理解什么?我试图做的是在组中添加菜单项,使用的id为
nav_group1
。这不难理解我想要达到什么目标吗?是的,我正在努力解决问题的措辞,记住我是自愿花时间来帮助别人的。这是现有的菜单组还是新的菜单组?您遇到的问题是菜单项是单独添加的,而不是作为一个组添加的吗?@Shawn是的,当我使用组id
nav\u group1
时,我确实遇到了菜单项没有添加到组中的问题。请看我的问题中的屏幕截图,我正在尝试实现什么。我希望比这更好,因为我需要java代码来添加组中的菜单项。我试过了,但没用。不,我什么都没做。为什么?回答得很好,肖恩我们一直靠在一起:)