実行時にナビゲーション ビュー グループの可視性を設定する方法がわかりません。ナビゲーションドロワーにログイン機能を作りたい。ユーザーがそこでログイン項目をタップすると、アプリケーションは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);
}
}
}
そして、何も起こりませんでした。