2

OK、動作または私の NavigationView が機能します。設定をクリックすると、そこに移動します。最初のアイテムをクリックすると、本来の動作をします。2 番目の項目をクリックすると、本来の動作が行われます。

ただし、私の問題は選択状態にあります。項目をクリックしても選択されません。機能する唯一の選択は、私の設定メニューです。そのアイテムをクリックすると、以前にクリックしたすべてのアイテムとともに、設定メニューが選択されます。

シナリオ

  1. アプリの読み込み時

    • NavigationView に移動 (A、B、設定)
    • アイテムをクリック
    • アプリが適切な場所に移動します (何も選択されていません)
    • ナビゲーションビューに移動
    • 設定をクリックします
    • アプリが設定アクティビティに移動します (設定メニューと A メニューが選択されています)
  2. アプリの読み込み時

    • NavigationView に移動 (A、B、設定)
    • アイテムをクリック
    • アプリが適切な場所に移動します (何も選択されていません)
    • ナビゲーションビューに移動
    • Bアイテムをクリック
    • アプリが適切な場所に移動します (何も選択されていません)
    • ナビゲーションビューに移動
    • 設定をクリックします
    • アプリが設定アクティビティに移動します (設定メニューと A、B メニューが選択されています)
  3. アプリの読み込み時

    • NavigationView に移動 (A、B、設定)
    • 設定をクリックします
    • アプリが設定アクティビティに移動します (設定メニューが選択されています)
  4. アプリの読み込み時

    • NavigationView に移動 (A、B、設定)
    • 設定をクリックします
    • アプリが設定アクティビティに移動します (設定メニューが選択されています)
    • ナビゲーションビューに移動
    • Bアイテムをクリック
    • アプリが適切な場所に移動します (設定が選択されています)
    • ナビゲーションビューに移動
    • 設定をクリックします
    • アプリが設定アクティビティに移動します (設定メニューと B メニューが選択されています)
  5. アプリの読み込み時

    • NavigationView に移動 (A、B、設定)
    • アイテムをクリック
    • アプリが適切な場所に移動します (何も選択されていません)
    • ナビゲーションビューに移動
    • アイテムをクリック
    • アプリが適切な場所に移動します (A が選択されています)

コード

navigation.xml

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


    <item
        android:id="@+id/movie_heading"
        android:title="Movies"
        android:enabled="false">

        <menu
            android:id="@+id/navigationGroupMovies"
            android:checkableBehavior="single">

            <item
                android:id="@+id/navigationOnline"
                android:icon="@drawable/ic_movie_creation_white_24dp"
                android:title="Find Online"
                android:checkable="true"/>

            <item
                android:id="@+id/navigationMyCollection"
                android:icon="@drawable/abc_btn_rating_star_on_mtrl_alpha"
                android:title="My Collections"
                android:checkable="true"/>

        </menu>

    </item>

    <group
        android:id="@+id/navigationGroupSetting"
        android:checkableBehavior="single">

        <item
            android:id="@+id/navigationSetting"
            android:icon="@drawable/ic_settings_white_24dp"
            android:title="Settings" />

    </group>

</menu>

state_navigation_text.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_checked="true"
          android:color="@color/accent"  />

    <item android:state_focused="true"
          android:color="@color/primary"/>

    <item android:color="@color/primary_dark" />

</selector>

ナビゲーション項目をクリックしたとき

@Override
public boolean onNavigationItemSelected(MenuItem item) {

    item.setChecked(true);

    switch (item.getItemId()) {

        case R.id.navigationSetting:

            startActivity(new Intent(this, SettingsActivity.class));
            break;

        case R.id.navigationOnline:         setCurrentTabs(API.WEB_GROUP); break;
        case R.id.navigationMyCollection:   setCurrentTabs(API.OFFLINE_GROUP); break;

        default: // Do nothing

    }

    closeDrawer();

    return true;

}
4

0 に答える 0