在检查权限时,应用程序不能投射到 android.app.Activity



我正在创建一个调用应用程序,我在请求时为回收器视图创建了一个适配器CALL_PHONE显示错误

E/AndroidRuntime: fattal EXCEPTION: main Process: in.welcomeyou.merchant, PID: 14890 java.lang.ClassCastException: android.app.Application 不能强制转换为 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();

您得到此异常是因为您无法将应用程序强制转换为活动,因为应用程序不是活动的子类。

请写如下

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456"));
((YourActivityName)mContext).startActivity(intent);

最新更新