今天写代码时遇到一个bug,logcat显示存在空指针,报错信息如下:
Android:getApplicationContext() 报错 -- 空指针_第1张图片

错误方式以及出错原因:
java.lang.RuntimeException: Unable to start activity ComponentInfo 以及 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.content.Context.**.getApplicationContext()’ on a null object reference

今天花了一天的时间将这一部分代码进行重写以后,发现问题其实不在logcat报错的位置,而是出在了Intent 的activity跳转上,由于intent携带了两个String类型的数据,我最开始的代码如下:

Intent intent = new Intent(DrugBoxActivity.this, SetAlarmActivity.class);intent.putExtra("drug_boxNum", strDrugBoxNum);intent.putExtra("drug_genericName", strDrugName[position]);intent.putExtra("drug_dosage", strDrugDosage[position]);getApplicationContext().startActivity(intent);

问题就出在了这里的 getApplicationContext() 上,由于没有系统的学习和了解,所以对这里不太懂,但是对于功能实现的话,getApplicationContext() 是不允许的,点击相应的控件后,会闪退当前的activity,再次点击相应的activity会退出APP,此时才会产生logcat错误。

去掉getApplicationContext(),更换下面的写法后,就可以正常跳转activity了,也可以传递数据。

startActivity(new Intent(DrugBoxActivity.this, SetAlarmActivity.class)                                        .putExtra("drug_boxNum", strDrugBoxNum)                                        .putExtra("drug_genericName", strDrugName[position])                                        .putExtra("drug_dosage", strDrugDosage[position])                                    );

更多相关文章

  1. android代码编写布局和控件
  2. [CSDN]Android系统进程Zygote启动过程的源代码分析
  3. Android有用代码片段(二)
  4. Android 代码当中动态改变某个控件的位置
  5. android 获取本机号码及应加的权限 代码
  6. android 官方文档中的一些错误收集
  7. 编译Android出现/usr/bin/ld: cannot find -lncurses错误

随机推荐

  1. android AudioTrack 播放 正弦波 方波
  2. android Material Desgin动效——SVG动画
  3. Android(安卓)Series: GET, POST and Mul
  4. android 将Bitmap转YUV420sp(实例)
  5. android中用HTTP请求将经纬度解析为具体
  6. Android(安卓)数据存储方式有哪几种
  7. SystemUI下的RecentActivity
  8. android使用Activity
  9. Eclipse运行工程报AVD没有找到错误解决过
  10. Cocos 2d-x 3.8 在ubuntu下使用QtCreator