2017-06-30 1 views
0

私は異なるアクティビティで私のアプリケーションにナビゲーションドロワーを持っています。すべてうまくいくが、大きな問題がある。ナビゲーション・ドロワーのアクティビティーを変更したい場合、そのアイテムはチェックされていないか、間違ってチェックされていません。たとえば、ナビゲーション・ドロワを開いても選択されていない、または別のアイテムが選択されているときに、アクティビティBに移動したいとします。 アイテム:
`ナビゲーションドロワー私がアクティビティを変更したときに間違ってチェックされました

<item 
    android:id="@+id/nav_home" 
    android:icon="@drawable/ic_home" 
    android:title="@string/Button_home"/> 

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

    <item 
     android:id="@+id/nav_registrati" 
     android:icon="@mipmap/ic_create_black_24dp" 
     android:title="@string/registrati"/> 
    <item 
     android:id="@+id/nav_login" 
     android:icon="@mipmap/ic_filter_tilt_shift_black_24dp" 
     android:title="@string/accedi"/> 
</group> 

<group android:checkableBehavior="single" 
    android:id="@+id/logged_group" 
    > 
    <item 
     android:id="@+id/nav_profilo" 
     android:icon="@drawable/id_profile" 
     android:title="@string/Profilo"/> 
    <item 
     android:id="@+id/nav_notifiche" 
     android:icon="@drawable/ic_notifications" 
     android:title="@string/Notifiche"/> 
    <item 
     android:id="@+id/nav_mie_recensioni" 
     android:icon="@drawable/ic_review" 
     android:title="@string/mie_recensioni"/> 
    <item 
     android:id="@+id/nav_persone_seguo" 
     android:icon="@drawable/ic_person" 
     android:title="@string/persone_seguo"/> 
    <item 
     android:id="@+id/nav_oggetti_seguo" 
     android:icon="@drawable/ic_favorite" 
     android:title="@string/oggetti_seguo"/> 
    <item 
     android:id="@+id/nav_inserisci_recensione" 
     android:icon="@drawable/ic_review" 
     android:title="@string/inserisci_recensione"/> 
    <item 
     android:id="@+id/nav_settings" 
     android:icon="@drawable/ic_build" 
     android:title="@string/action_settings"/> 
    <item 
     android:id="@+id/nav_esci" 
     android:icon="@mipmap/ic_exit_to_app_black_24dp" 
     android:title="@string/exit"/> 
</group> 

<item 
    android:id="@+id/nav_Assistenza" 
    android:icon="@drawable/ic_help" 
    android:title="@string/Assistenza"/> 

そしてsuperActivity: はここにいくつかのコードがある

@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    Log.i("Successo","SOno entrato"+item.getItemId()); 
    // now set clicked menu item to checked 
    Intent intent; 
    switch(item.getItemId()) { 
     case R.id.nav_home: 
      intent = new Intent(ctx, A10_HomePage.class); 
      break; 
     case R.id.nav_registrati: 
      intent = new Intent(ctx, A1_LoginIniziale.class); 
      editor.putString("previous", "REG").apply(); 
      break; 
     case R.id.nav_login: 
      intent = new Intent(ctx, A1_LoginIniziale.class); 
      editor.putString("previous", "LOGIN").apply(); 
      break; 
     case R.id.nav_notifiche: 
      intent = new Intent(ctx, A14_Notifiche.class); 
      break; 
     case R.id.nav_mie_recensioni: 
      intent = new Intent(ctx, A23_MieRecensioni.class); 
      break; 
     case R.id.nav_oggetti_seguo: 
      intent = new Intent(ctx, A22_OggettiSeguiti.class); 
      break; 
     case R.id.nav_persone_seguo: 
      intent = new Intent(ctx, A19_PersoneSeguite.class); 
      break; 
     case R.id.nav_inserisci_recensione: 
      intent = new Intent(ctx, A15_InserisciRecensione.class); 
      break; 
     case R.id.nav_settings: 
      intent = new Intent(ctx, A6_Impostazioni.class); 
      break; 
     case R.id.nav_Assistenza: 
      intent = new Intent(ctx, A35_Assistenza.class); 
      break; 
     case R.id.nav_esci: 
      removeUser(); 
      intent = new Intent(ctx, A1_LoginIniziale.class); 
      break; 
     case R.id.nav_profilo: 
      intent = new Intent(ctx, A7_ProfiloPrivato.class); 
      break; 
     default: 
      intent = new Intent(ctx, A10_HomePage.class); 
      break; 
    } 
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
    startActivity(intent); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 

レイアウト:私もこの問題を発見した

<android.support.design.widget.NavigationView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:itemIconTint="@color/drawer_item_text" 
     app:itemTextColor="@color/drawer_item_text" 
     app:headerLayout="@layout/nav_header"/> 

答えて

0

と私がすることによってこれを解決します使用:

onNavigationItemSelected(navView.getMenu()。getItem(R.id.nav_profile));

onNavigationItemSelected(navView.getMenu()。getItem(0));は、これをデフォルトで最初の項目選択に使用します。

+0

について同じことを行うことができますか?すなわちnav_home各ナビゲート項目のidを持つ活動インサイド – PeanutButter

+0

、私のために動作していないnav_mie_recensioni –

+0

、カスタムナビゲーションのための私のアプリがクラッシュ – PeanutButter

0

は、この描画可能

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="#FFFFFF" android:state_checked="true" /> 
    <item android:color="#7D7D7F" android:state_checked="false" android:state_enabled="false" /> 
    <item android:color="#7D7D7F" android:state_enabled="false" /> 
    <item android:color="#7D7D7F" /> 
</selector> 

を追加して、あなたのテキストビュー

<android.support.design.widget.NavigationView 
     xmlns:android="``http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:itemIconTint="@color/drawer_item_text" 
     app:itemTextColor="@color/navigation_text_color" 
     app:headerLayout="@layout/nav_header" 

ため、この描画可能なを使用します。また、アイコン、私はそのコードを配置する必要があり

+0

didnの」を解決すると思います私のために働く、私は同じ問題があります – PeanutButter

関連する問題