不兼容的类型:无法转换为 Context
incompatible types: cannot be converted to Context
我在尝试修改代码以处理 Android Nougat
中的文档时出现错误。
incompatible types: cannot be converted to Context
这是我的代码
documentViewHolder.preview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File document = new File(Environment.getExternalStorageDirectory() + "/heyJudeDocuments/" + getItem(position).attachment_id); // -> filename = maven.pdf
Uri path = FileProvider.getUriForFile(MessageAdapter.this,BuildConfig.APPLICATION_ID + ".provider",document);
Intent docIntent = new Intent(Intent.ACTION_VIEW);
docIntent.setDataAndType(path, getItem(position).mime);
docIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
docIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
MessageAdapter.this
部分似乎是错误的。有人可以指出我哪里错了吗?
MessageAdapter
不是 Context
的子类。通常,对于您正在做的事情(大概是启动 activity),您可以访问您所在的 Activity
,这就是要在此处使用的 Context
。
public class MessageAdapter extends BaseAdapter {
private Context context;
public MessageAdapter(Context context) {
this.context = context;
}
在 Uri
中使用该上下文(而不是 MessageAdapter.this)
Uri path = FileProvider.getUriForFile(context ,BuildConfig.APPLICATION_ID + ".provider",document);
我在尝试修改代码以处理 Android Nougat
中的文档时出现错误。
incompatible types: cannot be converted to Context
这是我的代码
documentViewHolder.preview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File document = new File(Environment.getExternalStorageDirectory() + "/heyJudeDocuments/" + getItem(position).attachment_id); // -> filename = maven.pdf
Uri path = FileProvider.getUriForFile(MessageAdapter.this,BuildConfig.APPLICATION_ID + ".provider",document);
Intent docIntent = new Intent(Intent.ACTION_VIEW);
docIntent.setDataAndType(path, getItem(position).mime);
docIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
docIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
MessageAdapter.this
部分似乎是错误的。有人可以指出我哪里错了吗?
MessageAdapter
不是 Context
的子类。通常,对于您正在做的事情(大概是启动 activity),您可以访问您所在的 Activity
,这就是要在此处使用的 Context
。
public class MessageAdapter extends BaseAdapter {
private Context context;
public MessageAdapter(Context context) {
this.context = context;
}
在 Uri
中使用该上下文(而不是 MessageAdapter.this) Uri path = FileProvider.getUriForFile(context ,BuildConfig.APPLICATION_ID + ".provider",document);