2017-05-20 14 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 path = FileProvider.getUriForFile(context ,BuildConfig.APPLICATION_ID + ".provider",document); 
0

MessageAdapterContext의 하위 클래스가 아닙니다. 보통, 당신이하고있는 일 (아마, 활동 시작)에 대해, 당신은 당신이 속한 Activity에 접근 할 수 있습니다, 그리고 그것은 여기에서 사용할 Context입니다.