2016-05-13 11 views
1

Ich versuche, eine Navigationsleiste mit NavigationView zu implementieren. Alles funktioniert soweit, jedes Objekt wird korrekt angezeigt. Allerdings gibt es eine NullPointerException in diesen Zeilen:TextView von Navigation Header ist null

View header = navigationView.getHeaderView(0); 
TextView username = (TextView) header.findViewById(R.id.profile_name_id); 
username.setText(mUser.getUsername()); 

In dieser Zeile username.setText(mUser.getUsername()); die NullPointerExption geworfen wird. Das Merkwürdige ist, dass es immer noch zeigt den richtigen Text von mUser.getUsername() Dies ist der NavigationView:

<android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:layout_gravity="start" 
     app:headerLayout="@layout/drawer_header" 
     app:menu="@menu/drawer"/> 

Drawer_header:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:paddingTop="20dp" 
    android:paddingBottom="20dp" 
    android:background="@color/primary_dark" 
    android:layout_width="match_parent" 
    android:layout_height="160dp"> 

    <ImageView 
     android:id="@+id/profile_pic_id" 
     android:src="@drawable/account_big" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:layout_height="0dp"/> 
    <android.widget.TextView 
     android:id="@+id/profile_name_id" 
     android:textColor="@color/primary_text" 
     android:textSize="18sp" 
     android:layout_gravity="center" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

Schublade:

<?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/home_id" 
      android:checked="false" 
      android:icon="@drawable/home" 
      android:title="@string/home" /> 

     <item 
      android:id="@+id/create_set_id" 
      android:checked="false" 
      android:icon="@drawable/add_box" 
      android:title="@string/create_learnset" /> 

     <item 
      android:id="@+id/logout_id" 
      android:checked="false" 
      android:icon="@drawable/logout" 
      android:title="@string/logout" /> 
    </group> 
</menu> 
+1

Ändern Sie '

+0

Funktioniert es oder nicht? –

+0

ja gearbeitet, pls schreibe eine Antwort – greedsin

Antwort

2

Sie müssen nur schreibe Text View.

Ändern Sie diese

<android.widget.TextView 
     android:id="@+id/profile_name_id" 
     android:textColor="@color/primary_text" 
     android:textSize="18sp" 
     android:layout_gravity="center" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

Um dies zu.

<TextView 
     android:id="@+id/profile_name_id" 
     android:textColor="@color/primary_text" 
     android:textSize="18sp" 
     android:layout_gravity="center" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

es gemacht wird.

Verwandte Themen