Abh*_*eet 1 android android-viewholder
您好我正在尝试使用Picasso添加图像,但是当我使用以下视图持有者时,在适配器中获取Picasso的上下文时遇到问题:
这是我的适配器
public class DataAdapter extends
RecyclerView.Adapter<DataAdapter.ViewHolder> {
private ArrayList<String>
al_prod_name,al_prod_price,al_prod_id,
al_prod_image;
public DataAdapter(ArrayList<String> al_prod_id,
ArrayList<String> al_prod_name,
ArrayList<String> al_prod_price,
ArrayList<String> al_prod_image) {
this.al_prod_id = al_prod_id;
this.al_prod_price = al_prod_price;
this.al_prod_name = al_prod_name;
this.al_prod_image = al_prod_image
}
public DataAdapter.ViewHolder
onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardrow, viewGroup,
false);
return new ViewHolder(view);
}
public void onBindViewHolder(DataAdapter.ViewHolder
viewHolder, int i) {
viewHolder.tv_prod_name.setText
(al_prod_name.get(i));
viewHolder.tv_prod_price.setText
(al_prod_price.get(i));
Picasso.with().load(al_prod_image.get(i))
.placeholder(R.drawable.floatingicon)
.error(R.drawable.floatingicon).
.into(viewHolder.img_prod);
}
public int getItemCount() {
return al_prod_id.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView tv_prod_name,tv_prod_price;
private ImageView img_prod;
public ViewHolder(View view) {
super(view);
tv_prod_name = (TextView)view
.findViewById(R.id.tv_prod_name);
tv_prod_price = (TextView)view
.findViewById(R.id.tv_prod_price);
img_prod = (ImageView)view
.findViewById(R.id.img_prod);
}
}
}
Run Code Online (Sandbox Code Playgroud)
请帮助获取上下文.这是我设置适配器的方式:
RecyclerView.Adapter adapter = new
DataAdapter(al_prod_id,al_prod_name,
al_prod_price,al_prod_image);
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是使用viewHolder.itemView.getContext()
Picasso.with(viewHolder.itemView.getContext()).load(al_prod_image.get(i))
.placeholder(R.drawable.floatingicon)
.error(R.drawable.floatingicon).
.into(viewHolder.img_prod);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3603 次 |
| 最近记录: |