最近我尝试使用navigation view
和header
的应用。
标题包含 2 textview,name
和email
。
当我尝试通过代码动态设置文本视图时,它会抛出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
答案 0 :(得分:3)
正如NavigationView
尝试navigationView.findViewById(viewId);
我在使用NavigationView
时遇到的一个奇怪的事情有时会navigationView.findViewById(viewId)
返回null
(原因可能是我们尝试访问(标题)视图,然后才会将{{1}充气}})
现在我曾经手动将标题添加到NavigationView
NavigationView