2016-11-16 7 views
0

이미지 URL을 포함하여 json의 데이터가있는 사용자 지정 어댑터가 있습니다. 문제는 내가 .. 문제는, 모든 것이 초기화 존재 이유안드로이드에서 picasso의 문맥을 해결합니다.

@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) { 

    ClubFieldsModel value = Items.get(i); 
    //Uri uri = Uri.parse(value.getFieldImageThumb().toString()); 
    viewHolder.title.setText(value.getTitle()); 
    viewHolder.desc.setText(value.getDesc()); 
    String imageUrl = value.getFieldImageThumb(); 

    //context "cant resolve symbol" error ... 
    Picasso.with(context).load(imageUrl).into(viewHolder.field_image_thumb); 

} 

캔트은 볼 ... onBindViewHolder() 내부의 상황에 맞는 값에

편집 "을 캔트 해결 기호"를 얻고있다 : 전체 어댑터 코드 ..

package app.sync.myapp.adapters; 

import android.net.Uri; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.squareup.picasso.Picasso; 

import java.net.URI; 
import java.util.List; 


import app.sync.myapp.R; 
import app.sync.myapp.model.ClubFieldsModel; 

import static android.support.v7.appcompat.R.id.action_context_bar; 
import static android.support.v7.appcompat.R.id.image; 
import static app.sync.myapp.R.id.field_image_thumb; 

public class ClubFieldsAdapter extends RecyclerView.Adapter<ClubFieldsAdapter.ViewHolder> { 

List<ClubFieldsModel> Items; 

public ClubFieldsAdapter(List<ClubFieldsModel> Items) { 
    this.Items = Items; 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
    View v = LayoutInflater.from(viewGroup.getContext()) 
      .inflate(R.layout.club_fields_item, viewGroup, false); 
    ViewHolder viewHolder = new ViewHolder(v); 
    return viewHolder; 
} 

@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) { 

    ClubFieldsModel value = Items.get(i); 
    //Uri uri = Uri.parse(value.getFieldImageThumb().toString()); 
    viewHolder.title.setText(value.getTitle()); 
    viewHolder.desc.setText(value.getDesc()); 
    String imageUrl = value.getFieldImageThumb(); 

    Picasso.with(context).load(imageUrl).into(viewHolder.field_image_thumb); 

} 

@Override 
public int getItemCount() { 
    return Items.size(); 
} 

class ViewHolder extends RecyclerView.ViewHolder { 

    public ImageView field_image_thumb; 
    public TextView title; 
    public TextView desc; 

    public ViewHolder(View itemView) { 

     super(itemView); 
     title = (TextView) itemView.findViewById(R.id.title); 
     desc = (TextView) itemView.findViewById(R.id.desc); 
     field_image_thumb = (ImageView) itemView.findViewById(R.id.field_image_thumb); 


     } 


    } 
} 
+0

전체 어댑터 코드 게시 –

답변

2

당신이 itemView 당신이 onCreateViewHolder을 비정상적으로 볼 수있다 viewHolder.itemView.getContext()를 사용할 수 있습니다. 좀 봐 here. 예 :

Picasso.with(viewHolder.itemView.getContext()).load(imageUrl).into(viewHolder.field_image_thumb); 
+0

고마워요! – BENN1TH

+0

당신은 환영합니다 – Blackbelt

0

당신은 어댑터의 생성자에 컨텍스트를 전송해야합니다. 그것을 다음으로 변경하십시오 :

private Context context; 

public ClubFieldsAdapter(List<ClubFieldsModel> Items, Context context) { 
this.Items = Items; 
this.context = context; 
} 

그리고 어댑터 클래스를 호출 할 때 컨텍스트를 추가하십시오.