android获取navigationview 上的控件id

前言:今天写程序时遇到这个问题,试了一些方法,终于反应过来了。一首凉凉送给自己。

  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aigsharedome/com.example.aigsharedome.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

这里我获取nav_header_main上的Textview

TextView这个对象是一个空对象,查找了相关资料后才找到解决方案,应该获取相应控件的上层父控件,从上到下逐级获取,若不按照这种方法,直接findViewById的话,是获取不到对应控件id的。

        navigationView = findViewById(R.id.nav_view);
        t_name = navigationView.getHeaderView(0).findViewById(R.id.t_name);
        t_says = navigationView.getHeaderView(0).findViewById(R.id.t_says);
        t_username = navigationView.getHeaderView(0).findViewById(R.id.username);


 

发布了71 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39131246/article/details/90145122