Android应用点击RecyclerView呼叫按钮触发崩溃问题求助
问题根因
你点击呼叫按钮崩溃的直接原因是ContactAdapter中声明的全局Context变量从未被赋值,调用startActivity()时触发空指针异常,和你跳转拨号页面的逻辑本身无关。
修复步骤
- 第一步:修改
ContactAdapter的构造方法,新增Context参数并完成赋值
// 修改ContactAdapter的构造函数 public ContactAdapter(Context context, List<Contact> contacts) { this.context = context; this.contacts = contacts; }
- 第二步:修改Main.java中Adapter初始化逻辑,传入Activity上下文
找到init()方法里的Adapter实例化代码,修改为:
adapter=new ContactAdapter(this, contacts);
- 可选优化:
ViewHolder中声明的未使用Context变量可以直接删除,避免冗余。
补充说明
你当前使用的Intent.ACTION_DIAL逻辑是完全正确的,该动作只会跳转系统拨号页预填号码,不需要申请任何权限,比直接拨打电话的ACTION_CALL更安全,适配所有安卓版本。
内容的提问来源于stack exchange,提问作者klen
相关产品推荐
相关产品推荐

