不兼容的类型:无法转换为 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);