我正在创建一个调用应用程序,我在请求 CALL_PHONE 时为 Recycler View 创建了一个适配器,但显示错误
E/AndroidRuntime: FATAL EXCEPTION: main Process: in.welcomeyou.merchant, PID: 14890 java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity
@Override
public void onBindViewHolder(EnquiryViewHolder holder, int position) {
Enquiry enquiry = enquiryList.get(position);
holder.domainTextView.setText(enquiry.getDomain());
holder.nameTextView.setText(enquiry.getName());
holder.commentsTextView.setText(enquiry.getComments());
holder.dateTextView.setText(enquiry.getDate());
holder.callBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (ActivityCompat.checkSelfPermission(mCtx, CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CALL_PHONE},
Constants.CALL_PHONE);
return;
}
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456"));
mCtx.startActivity(intent);
}
});
}
最佳答案
将上下文传递给此适配器时,请使用 ActivityName.this 或 this 。 也许现在你已经通过了
getApplicationContext();
您会收到此异常,因为您无法将应用程序强制转换为 Activity ,因为应用程序不是 Activity 的子类。
关于java - 检查权限时应用程序无法转换为 android.app.Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50911655/