在 recyclerview 中通过毕加索库获取图像
feching image by picasso library in recycler view
我正在创建回收器视图,它通过改造从 Web 服务器获取数据,当我想通过 picasso 获取图像时出现问题,我收到错误消息
java.lang.IllegalArgumentException: Context must not be null.
我不知道为什么 context 为 null 我在 onBindViewHolder 中添加了 picasso
我的适配器
public class myAdapter extends RecyclerView.Adapter<myAdapter.ViewHolder> {
private List<Listitem>listitems;
private Context context;
public myAdapter(List<Listitem> listitems, Context context) {
this.listitems = listitems;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view, parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Listitem listitem = listitems.get(position);
holder.textTitile.setText(listitem.getTitel());
holder.textDesc.setText(listitem.getDesc());
Picasso.with(context)
.load(listitem.getImageurl())
.placeholder(R.color.colorAccent)
.into(holder.movieThumbnail);
}
@Override
public int getItemCount() {
return listitems.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView textTitile ;
public TextView textDesc;
public ImageView movieThumbnail;
public ViewHolder(View itemView) {
super(itemView);
textTitile=(TextView) itemView.findViewById(R.id.Titell);
textDesc=(TextView)itemView.findViewById(R.id.desc);
movieThumbnail = (ImageView) itemView.findViewById(R.id.movie_thumbnail);
}
}
}
您的上下文为空,您可以使用视图上下文的任何方式也例如:holder.itemView.getContext()
您可以检查您发送的不是空值,或者您可以使用 blow 方法。
所以你可以改成
Picasso.with(holder.itemView.getContext())
.load(listitem.getImageurl())
.placeholder(R.color.colorAccent)
.into(holder.movieThumbnail);
我正在创建回收器视图,它通过改造从 Web 服务器获取数据,当我想通过 picasso 获取图像时出现问题,我收到错误消息
java.lang.IllegalArgumentException: Context must not be null.
我不知道为什么 context 为 null 我在 onBindViewHolder 中添加了 picasso
我的适配器
public class myAdapter extends RecyclerView.Adapter<myAdapter.ViewHolder> {
private List<Listitem>listitems;
private Context context;
public myAdapter(List<Listitem> listitems, Context context) {
this.listitems = listitems;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view, parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Listitem listitem = listitems.get(position);
holder.textTitile.setText(listitem.getTitel());
holder.textDesc.setText(listitem.getDesc());
Picasso.with(context)
.load(listitem.getImageurl())
.placeholder(R.color.colorAccent)
.into(holder.movieThumbnail);
}
@Override
public int getItemCount() {
return listitems.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView textTitile ;
public TextView textDesc;
public ImageView movieThumbnail;
public ViewHolder(View itemView) {
super(itemView);
textTitile=(TextView) itemView.findViewById(R.id.Titell);
textDesc=(TextView)itemView.findViewById(R.id.desc);
movieThumbnail = (ImageView) itemView.findViewById(R.id.movie_thumbnail);
}
}
}
您的上下文为空,您可以使用视图上下文的任何方式也例如:holder.itemView.getContext()
您可以检查您发送的不是空值,或者您可以使用 blow 方法。
所以你可以改成
Picasso.with(holder.itemView.getContext())
.load(listitem.getImageurl())
.placeholder(R.color.colorAccent)
.into(holder.movieThumbnail);