2017-05-20 20 views
-3

Android Nougatのドキュメントを処理するコードを変更しようとしているときにエラーが発生しました。互換性のないタイプ:コンテキストに変換できません

互換性のない型は:これは私のコード

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一部だあるコンテキスト

に変換することはできません。誰かが間違っているところを指摘できますか?

答えて

1
public class MessageAdapter extends BaseAdapter { 
private Context context; 

public MessageAdapter(Context context) { 
    this.context = context; 
} 

使用(代わりMessageAdapter.thisの)そのコンテキストURIに

Uri path = FileProvider.getUriForFile(context ,BuildConfig.APPLICATION_ID + ".provider",document); 
0

MessageAdapterContextのサブクラスではありません。通常、あなたが何をしているのか(おそらく、活動を開始する)、あなたはあなたがいるActivityへのアクセス権があり、それはここで使用するContextです。

関連する問題