我有一个显示照片的回收站视图。
这是我的适配器:
public class CustomerImageListAdapter extends RecyclerView.Adapter<CustomerImageListAdapter.Holder> {
private Context context;
private List<String> imageUrls;
public CustomerImageListAdapter(Context context, List<String> imageUrls) {
this.context = context;
this.imageUrls = imageUrls;
}
@NonNull
@Override
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View rootview = LayoutInflater.from(context).inflate(R.layout.customer_onitemclick_image_viewpager_item, parent, false);
return new Holder(rootview);
}
@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
Glide.with(context).load(imageUrls.get(position)).into(holder.imageView);
if (imageUrls.size() != 0) {
for (int i = 0; i < imageUrls.size(); i++) {
Log.i("urls", "onBindViewHolder: " + imageUrls.get(i));
}
}
}
@Override
public int getItemCount() {
return imageUrls.size();
}
class Holder extends RecyclerView.ViewHolder {
ImageView imageView;
public Holder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.customer_onitemclick_image_viewpager_item_imageview);
}
}
public void setImageUrls(List<String> imageUrls1) {
imageUrls.addAll(imageUrls1);
notifyDataSetChanged();
}
}
当我在构造函数中设置“ imageurls”时,recyclerview会完美显示图像;
imageListAdapter = new CustomerImageListAdapter(getContext(),urls);
但是当我在构造函数“ new ArrayList()”中设置并使用“ setImagesUrls”方法更新“ imageurls”时, 然后recyclerview不显示图像。
imageListAdapter = new CustomerImageListAdapter(getContext(),new ArrayList<String>());
...
...
...
@Override{
public void onChanged(List<String> strings)
imageListAdapter.setImageUrls(strings);
}
基于“日志”,从服务器接收图像的地址。
@Override
public void onBindViewHolder(@NonNull Holder holder, int position)
{
Glide.with(context).load(imageUrls.get(position)).into(holder.imageView);
if (imageUrls.size() != 0) {
for (int i = 0; i < imageUrls.size(); i++) {
Log.i("urls", "onBindViewHolder: " + imageUrls.get(i));
}
}
}
感谢您的帮助