Android 关于解决findViewById()赋值产生空指针问题
今天在写代码的时候用到了这个代码
setContentView(R.layout.activity_main_one);
viewpager=(ViewPager)this.findViewById(R.id.viewpager);
在书写过程中没有任何代码的报错,然而到了运行时。。。。。。。。
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.viewpager.widget.ViewPager.setAdapter(androidx.viewpager.widget.PagerAdapter)' on a null object reference
出现空指针问题
经过利用log反复查找最后确定是这个代码的问题
viewpager=(ViewPager)this.findViewById(R.id.viewpager);
在这行代码中viewpager并没有获得任何赋值,依旧是空类型,原因是它的前一行代码
setContentView(R.layout.activity_main_one);
一般findViewById()都是this.findViewById()这就导致我在前面设置的xml文件中并没有相应的对象给viewpager赋值导致错误。
我的解决方法是将setContentView()中的xml文件设置为我要使用的对象所在的xml文件,修改如下:
setContentView(R.layout.activity_main);
viewpager=(ViewPager)this.findViewById(R.id.viewpager);
成功运行。