引言:
今天要是实现一个在MainActivity里面获取NavigationView的控件,我先直接使用findViewById,结果空指针异常了。然后我就在想,是不是因为NavigationView的特性,直接引用了定义好的headerLayout,所以其实headerLayout中的控件并不能直接在activity_main中查找。
正确做法:
mIdtext=navigationView.getHeaderView(0).findViewById(R.id.activity_nav_header_text_user);
getHeaderView接收一个int型index参数,表示第几个headerLayout,以第0项为首。
addHeaderView:
可以再添加一个header到Navigation中。
navigationView.addHeaderView(LayoutInflater.from(this).inflate(R.layout.activity_nav_header,null));