Android初始化NavigationView的header的TextView控件时遇到Attempt to invoke virtual method 'void android.widget.T

出错信息 Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)’ on a null object reference

原来的代码:

NavigationView navView = (NavigationView)findViewById(R.id.nav_view);
TextView mail = (TextView)headerLayout.findViewById(R.id.now_mail);
mail.setText(str);

出错原因:TextView控件在NavigationView的headerLayout中,而不在Main_layout中,因此要先找到headerLayout

修改代码如下:

NavigationView navView = (NavigationView)findViewById(R.id.nav_view);
View headerLayout=navView.getHeaderView(0);    //添加
TextView mail = (TextView)headerLayout.findViewById(R.id.now_mail);  //修改
mail.setText(str);
        

问题解决。

你可能感兴趣的:(Android初始化NavigationView的header的TextView控件时遇到Attempt to invoke virtual method 'void android.widget.T)