从导航标题访问多个文本视图时,应用程序崩溃

时间:2016-01-13 10:27:54

标签: android textview android-navigationview

最近我尝试使用navigation viewheader的应用。 标题包含 2 textview,nameemail。 当我尝试通过代码动态设置文本视图时,它会抛出null pointerexception。

任何人都可以帮我解决这个问题。

Navigation_view

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/activity_home_drawer" />

Navigation_header

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="@dimen/nav_header_height"
        android:gravity="bottom"
        android:orientation="vertical"
        android:theme="@style/ThemeOverlay.AppCompat.Dark">
     <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/imageView"
            android:paddingTop="@dimen/nav_header_vertical_spacing"
            android:layout_marginLeft="20dp"
            android:textColor="@color/colorAccent"
            android:text="Welcome"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

        <TextView
            android:id="@+id/email"
            android:layout_below="@+id/title"
            android:layout_marginLeft="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="info@rubin.in" />
    </RelativeLayout>

MainActivity中的代码

    TextView Title = (TextView)findViewById(R.id.title);
            Title.setText("Guest");
TextView Email = (TextView)findViewById(R.id.email);
            Email.setText("Guest@email.in");

Logcat错误

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

1 个答案:

答案 0 :(得分:3)

正如NavigationView

尝试navigationView.findViewById(viewId);

我在使用NavigationView时遇到的一个奇怪的事情有时会navigationView.findViewById(viewId)返回null(原因可能是我们尝试访问(标题)视图,然后才会将{{1}充气}})

现在我曾经手动将标题添加到NavigationView

NavigationView