2017-05-20 10 views
-3

Ich bin und erhalte einen Fehler beim Versuch, Code zu ändern, um Dokumente in Android Nougat zu behandeln.inkompatible Typen: Konnte nicht in Kontext konvertiert werden

inkompatible Typen: kann nicht in

Kontext umgewandelt werden

Das ist mein Code

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); 

ist Es ist die MessageAdapter.this Teil, falsch zu sein scheint. Kann jemand darauf hinweisen, wo ich falsch liege?

Antwort

1
public class MessageAdapter extends BaseAdapter { 
private Context context; 

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

verwenden, der Kontext (statt MessageAdapter.this) in Uri

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

MessageAdapter ist keine Unterklasse von Context. Normalerweise haben Sie für das, was Sie tun (vermutlich eine Aktivität starten), Zugriff auf die Activity, in der Sie sich befinden, und das ist die Context, die Sie hier verwenden können.

Verwandte Themen