很多刚学安卓的朋友在调试程序的时候,都有可能遇到初始化控制之后,设置事件监听器的时候,程序崩掉,报错信息显示空指针异常,因此我结合了一下自己遇到的实际情况,和网上其他人的解决方案对此类问题做了一个汇总,希望可以对同样出现同样问题的朋友带来帮助。

首先,也是我们必须要核实的一点就是你所初始化的空间是否为空,举个例子:

submit = (Button)findViewById(R.id.btn_submit_user_info);

submit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

}
});

或者:

submit = (Button)findViewById(R.id.btn_submit_user_info);

submit.setOnClickListener(this)

当我第一行初始化submit这个按钮的时候,接下来设置控件的监听器,这样的顺序不能反,这个大家都很容易理解要得先有(初始化)这个控件,才能对其进行操作,因此第一步先要核实这样的顺序是否准确。

接下来我们可以在初始化控件之后在后台打印输出一下,看看我们所初始化的控件到底是什么鬼

submit = (Button)findViewById(R.id.btn_submit_user_info);

System.out.println("submit is :"+submit);

这是个很有意思的环节,你可能遇到两种情况,第一种情况是打印输出的结果是空的(null),这就说明你初始化的控件在当前xml文件是找不到的,另外一种情况是打印输出有结果,一般都是:android.widget.控件类型{一堆无序码(类似id,可唯一标识控件)}。

针对第一种情况,我们都知道控件是在layout中的xml文件中定义的,因此第一步我们要检查初始化控件是在初始化布局文件(setContentView(R.layout....))之前还是之后,R文件会自动保存我们在XML文件做的一切初始化操作,因此你即使没有初始化布局,也可以在R文件里找到所有控件,这本身并没有语法错误,因此系统不会报错,但并不符合我们的操作逻辑,所以系统在初始化布局文件之前所找到的控件都是默认为空的,当然咯,这个大家也要理解,你要人家去“陌陌”上勾搭妹子,总得先下个“陌陌”吧~如果确认你的顺序是没有问题的,就必须要检查下你的空间是否在当前的布局文件下初始化的,这个我们很容易理解,一个Activity中很有可能要用到两个或两个以上的布局文件,因此你要确保你是否在一个Activity中初始化了你控件所在的那个布局文件,如果有,则应该核实下初始化控件的时候是否在改布局下初始化的。

针对第二种情况就好办了,你直接Ctril+点击该布局文件的id,查看你所初始化的控件是不是在你相应的布局文件里,因为项目一大,很可能设置了相同id的控件,一般来说这是第二类问题的关键解决方案。

以上是目前为止我总结的网上一些朋友和我遇到的一些关于setOnClickListener报空指针异常问题汇总,本人也是菜鸟一枚,如果有什么说的不对的也欢迎大家积极指出,如果你有关于setOnClickListener报空指针异常的问题是以上方法解决不了的,欢迎留言,我们一起完善此类问题的汇总。

下面送上汇总图一枚:

希望能帮到大家,谢谢~

setOnClickListener报空指针异常问题汇总相关推荐

  1. poi报空指针_POI 导出文件 报空指针异常 --Docker 中

    爬坑系列----Redis查询key报空指针异常,而redis中确实存在该key 现象: 1.在A方法中根据key查询一个list,可以获取到相应的值 2.在B方法中同样调用此方法,传入相同的key, ...

  2. java数组空指针一场_Java使用自定义类数组报空指针异常

    一开始自定义了一个学生类,类里面有几个属性.因为有很多个学生,所以想将这个类声明成数组使用,但是当我通过不同的下标给数组里不同对象赋值的时候一直报空指针异常 一开始代码是这样的 package _4_ ...

  3. java hash=0报空指针_怎么报空指针异常错误?

    源自:2-2 开发第一个自定义标签 怎么报空指针异常错误? java.lang.NullPointerException at org.apache.tomcat.util.descriptor.tl ...

  4. 交大计算机学硕往年录取情况,上海交通大学2020年考研报录情况汇总及分析

    原标题:上海交通大学2020年考研报录情况汇总及分析 上海交通大学简称"上海交大",坐落在魔都上海,是一所历史悠久.享誉海内外的高等学府. 大学排名是反映大学社会声誉的重要价值参考 ...

  5. xutils找id报空指针异常

    xutils找id报空指针异常,遇到这个问题看子页面是否没有加入 这行代码 ViewUtils.inject(this, mHomeView); @ViewInject(R.id.flash_view ...

  6. 爬坑系列----Redis查询key报空指针异常,而redis中确实存在该key

    爬坑系列----Redis查询key报空指针异常,而redis中确实存在该key 参考文章: (1)爬坑系列----Redis查询key报空指针异常,而redis中确实存在该key (2)https: ...

  7. 985 211 PHP,你们要的985、211高校官方报录比汇总来了

    原标题:你们要的985.211高校官方报录比汇总来了 [预计阅读时间:5分钟] 很多考研的小伙伴 都争先恐后的找小编要报录比 今天小编就给大家总结了 一堆干货 ▼ 985高校 985院校官方报录比数据 ...

  8. spring boot整合Quartz 在Job类中注入其他对象报空指针异常java.lang.NullPointerException at com.sxt.quartz.QuartzDemo.e

    情况在Job 类中注入RedisTemplate 报空指针异常 原因:我们使用JobDetailFactoryBean 帮我们创建对象 实际上调用的是AdaptableJobFactory 下的这个方 ...

  9. 985 211 PHP,部分985、211高校考研报录比汇总!

    原标题:部分985.211高校考研报录比汇总! 2020考研的童鞋们,大家好呀~ 最近好多想要考研的同学,总是咨询我院校报录比的情况 今天,文都酱把目前已公布的报录比数据的院校整理起来,大家根据数据主 ...

最新文章

  1. 游戏开发基础:A*算法(转)
  2. Sebastian Ruder 发文:Benchmark 的挑战与机遇!
  3. 行家来信 | 功能安全会成为自动驾驶的紧箍咒吗?
  4. 电商扣减库存_以电商为例 | B端产品经理,怎么做好库存系统设计
  5. 声学、音乐计算常用工具总结(soundfile、librosa、pydub、madmom、spleeter)
  6. 千万别强制停机!我嘴都气歪了!
  7. 在XNA 3.0 项目添加声音——播放MP3或WMA声音文件
  8. Hadoop入门基础教程 Hadoop之伪分布式环境搭建
  9. SpringBoot2.1.5(7)---更换Banner
  10. 部署SpringBoot到阿里云
  11. Codeforces Round # 555 (Div. 3) C2. Increasing subsequence (complicated version) (贪心)
  12. 这个被程序员捧上神坛的IDEA插件出来后,我扔掉了Postman了
  13. 如何进入腾讯、网易、阿里这样的互联网公司,看到第二条我就秒懂了~
  14. 【C++编程技巧】根据字符串中的指定字符作为分界将字符串拆分
  15. java基础回顾(一)—— sleep和wait的区别
  16. 极限学习机ELM回归预测及其MATLAB代码实现
  17. “ji32k7au4a83”是一个弱密码?
  18. 万字干货 | 用游戏高手的用户洞察法,如何复制一个拼多多
  19. 泛微E-Office文件上传漏洞(CNVD-2021-49104)
  20. win 7 防火墙设置

热门文章

  1. 计算机能换显卡吗,笔记本显卡能换吗?笔记本换显卡的方法
  2. 大学生程序设计邀请赛(华东师范大学) 黑心啤酒厂
  3. 【转】[译] zram.txt
  4. Python turtle 绘制正方体
  5. 使用nvm下载node和npm
  6. [PTA]实验2-1-4 计算平均分
  7. 计算机驱动恢复出厂设置在哪里,你所不知道的电脑恢复出厂设置的方法
  8. [Java8] lamda表达式及Stream API一览
  9. 如何阅读一本书 节选
  10. html 像素 视频教程,canvas像素点操作之视频绿幕抠图