3

実行時にナビゲーション ビュー グループの可視性を設定する方法がわかりません。ナビゲーションドロワーにログイン機能を作りたい。ユーザーがそこでログイン項目をタップすると、アプリケーションはstartActivityForResult(). これが私のメニューxmlコードです。

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <group android:checkableBehavior="single">
            <item android:id="@+id/nav_featured" android:icon="@drawable/ic_notifications_on_24dp"
                android:title="Featured" />
            <item android:id="@+id/nav_top_rated" android:icon="@drawable/ic_star_rate_24dp"
                android:title="Top Rated" android:checked="true"/>
            <item android:id="@+id/nav_most_visited" android:icon="@drawable/ic_group_24dp"
                android:title="Most Visited" />
            <item android:id="@+id/nav_arround_you" android:icon="@drawable/ic_place_24dp"
                android:title="Arround You" />
        </group>

        <group android:id="@+id/public_items">
            <item android:title="My Account">
                <menu>
                    <item android:id="@+id/nav_login" android:icon="@drawable/ic_person_24dp"
                        android:title="Login" />
                </menu>
            </item>
        </group>

       <group android:id="@+id/login_items" android:visible="false">
            <item android:title="My Account">
                <menu>
                    <item android:id="@+id/nav_search" android:icon="@drawable/ic_directions_bike_24dp"
                        android:title="Search"/>
                    <item android:id="@+id/nav_my_bookings" android:icon="@drawable/ic_event_available_24dp"
                        android:title="My Bookings"/>
                    <item android:id="@+id/nav_profile" android:icon="@drawable/ic_tag_faces_24dp"
                        android:title="My Profile"/>
                    <item android:id="@+id/nav_logout" android:icon="@drawable/ic_power_settings_new_black_24dp"
                        android:title="Logout"/>
                </menu>
            </item>
        </group>
    </menu>

そして、これが私のJavaコードです。

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            if (requestCode == REQUEST_CODE_FOR_LOGIN) {
                navigationView.getMenu().setGroupVisible(R.id.login_items, true);
            }
        }
    }

そして、何も起こりませんでした。

4

1 に答える 1