Android Button点击无法跳转Activity 取消注释触发空指针异常
问题原因及解决方法
跳转后看似停留在原页面的问题
Search 类的 onCreate 方法中存在布局加载错误:
你当前写的是:
setContentView(R.layout.activity_main);
加载的是和 MainActivity 完全相同的布局,所以即使跳转成功,视觉上和原页面没有区别,会误以为没有跳转。
你需要将该行代码修改为Search页面对应的布局文件,例如如果你为Search页面创建的布局是activity_search.xml,修改为:
setContentView(R.layout.activity_search);
取消注释后空指针报错的问题
上述布局加载错误直接导致findViewById执行时,在activity_main布局中找不到R.id.address2、R.id.redial2、R.id.alarm、R.id.searchView这些仅存在于Search布局中的控件,所有控件变量都会被赋值为null,后续调用setOnClickListener时自然会抛出空指针异常。
你只需要先修复上述布局加载错误,并且确认Search对应的布局文件中确实存在上述id的控件,空指针问题就会同步解决。
可选优化
- 如果你不需要让其他应用调用你的子页面,Manifest里
ShowAddress、Redial、Search三个Activity的<intent-filter>配置可以直接删除,仅保留android:name和android:exported="true"属性即可,减少不必要的配置风险。
内容的提问来源于stack exchange,提问作者In Doing It
相关产品推荐
相关产品推荐

