我正在创建一个调用应用程序我为Recycler视图创建了一个适配器,请求CALL_PHONE显示错误
E / AndroidRuntime:FATAL EXCEPTION:main进程: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);
}
});
}
答案 0 :(得分:1)
请写下面的
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456"));
((YourActivityName)mContext).startActivity(intent);
答案 1 :(得分:1)
将上下文传递给此适配器的位置使用ActivityName.this或this。 也许现在你通过了
getApplicationContext();
您得到此异常是因为您无法将Application强制转换为Activity,因为Application不是Activity的子类。