Android Studio - 无法从NavigationView中删除子菜单

时间:2017-05-17 10:08:58

标签: android

我想从NavigationView

DrawerLayoutNullPointerException 删除特定群组

我尝试使用我在堆栈中找到的以下代码行来删除该组,但它不起作用

1)。按ID删除组

NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view);
menu.removeGroup(R.id.myPagesGroup);

2)。按ID设置可见性

menu.setGroupVisible(R.id.myPagesGroup, false);

第3)。从第一个另一个组项目中查找子菜单,然后设置可见性

menu.findItem(R.id.nav_support).getSubMenu().setGroupVisible(R.id.myPagesGroup, false);

代码段 1 2 不会给我一个错误,该组只是可见。

Snippet 3 给了我一个{{3}}

java.lang.NullPointerException: Attempt to invoke interface method 'void android.view.SubMenu.setGroupVisible(int, boolean)' on a null object reference

使用下面的代码删除项目无效

menu.removeItem(R.id.nav_calendar);

以下是实际的菜单

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

<group
    android:id="@+id/favoritesGroup"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_calendar"
        android:icon="@mipmap/ic_calendar"
        android:title="Kalender"/>
    <item
        android:id="@+id/menu_none"
        android:title=""
        android:visible="false"/>
    <item
        android:id="@+id/nav_availabilityList"
        android:icon="@mipmap/ic_calendar"
        android:title="Tillgänglighet"/>
    <item
        android:id="@+id/nav_available_jobs"
        android:icon="@mipmap/ic_assignment"
        android:title="Lediga Jobb"/>
    <item
        android:id="@+id/nav_my_contacts"
        android:icon="@mipmap/ic_phone"
        android:title="Kontakt"/>
    <item
        android:id="@+id/nav_contactSc"
        android:visible="false"
        android:icon="@mipmap/ic_phone"
        android:title="Kontakt"/>

    <item
        android:id="@+id/nav_support"
        android:icon="@mipmap/ic_phone"
        android:title="Support"/>
</group>

<item android:title="Mina Sidor">
    <menu>
        <group
            android:id="@+id/myPagesGroup"
            android:checkableBehavior="single">
            <item
                android:id="@+id/nav_my_commissions"
                android:icon="@mipmap/ic_commissions"
                android:title="Mina Uppdrag"/>
            <item
                android:id="@+id/nav_commission_schedule"
                android:icon="@mipmap/ic_commission_schedule"
                android:title="Uppdragsschema"/>
            <item
                android:id="@+id/nav_vacation"
                android:icon="@mipmap/ic_vacation_application"
                android:title="Semesteransökan"/>
            <item
                android:id="@+id/nav_employment_terms"
                android:icon="@mipmap/ic_employment_terms"
                android:title="Anställningsvillkor"/>
            <item
                android:id="@+id/nav_document"
                android:icon="@mipmap/ic_document"
                android:title="Dokument"/>
            <item
                android:id="@+id/nav_consultant_agent"
                android:icon="@mipmap/ic_consultant_agent"
                android:title="Konsultombud"/>
            <item
                android:id="@+id/nav_file_upload"
                android:icon="@mipmap/ic_file_upload"
                android:title="Ladda upp intyg"/>
            <item
                android:id="@+id/nav_my_tests"
                android:icon="@mipmap/ic_tests"
                android:title="Mina tester"/>
            <item
                android:id="@+id/nav_matching_jobs"
                android:icon="@mipmap/ic_matching_jobs"
                android:title="Matchande jobb"/>
            <item
                android:id="@+id/nav_my_applications"
                android:icon="@mipmap/ic_applications"
                android:title="Mina ansökningar"/>
            <item
                android:id="@+id/nav_my_profile"
                android:icon="@mipmap/ic_profile"
                android:title="Min profil"/>
        </group>
    </menu>

</item>

<item android:title="Övrigt">
    <menu>
        <group
            android:id="@+id/generalGroup"
            android:checkableBehavior="single">
            <item
                android:id="@+id/nav_looking_for_job"
                android:icon="@mipmap/ic_assignment"
                android:title="Söker du jobb?"/>
            <item
                android:id="@+id/nav_looking_for_personel"
                android:icon="@mipmap/ic_people"
                android:title="Söker du personal?"/>
            <item
                android:id="@+id/nav_about_us"
                android:icon="@mipmap/ic_office"
                android:title="Om oss"/>

            <item
                android:id="@+id/nav_logout"
                android:icon="@mipmap/ic_phone"
                android:title="Logga ut"/>
        </group>
    </menu>
</item>


</menu>

1 个答案:

答案 0 :(得分:1)

你试过这个吗?

Menu nav_Menu = navigationView.getMenu();
nav_Menu.findItem(R.id.myPagesGroup).setVisible(false);

对于团体

navigationView.getMenu().setGroupVisible(R.id.myPagesGroup, false);