Я использую RecyclelerView для отображения изображений (в папке для рисования), это просто упражнение, и у меня есть массив из трех объектов (ImageModel), у каждого ImageModel есть поле, я называю его изображением (String), ImageModel имеет его конструктор и геттеры и сеттеры (очень базовый c класс), ..
Теперь я показываю три блока изображений с одним и тем же изображением, я использую идентификатор изображения для его отображения, image.setImageResource (R) .drawable.newimage); но я хочу отобразить несколько изображений на основе поля изображения (URL или часть URL)
Это мой класс адаптер, go последние 10 строк, чтобы увидеть мою проблему, на самом деле не проблема, но Я не знаю, как сделать это динамически c, потому что у меня сейчас три модели изображений, у меня может быть 5, может 20, я не знаю ..
public class ImageListAdapter extends RecyclerView.Adapter<ImageListAdapter.ImageViewHolder>{
public List<ImageModel> images = new ArrayList<ImageModel>();
public Context context;
public ImageListAdapter(Context context, List<ImageModel> contracts){
this.context = context;
this.images.clear();
this.images.addAll(contracts);
Log.d("TAG", "ADAPTER");
}
public void updateImages(List<ImageModel> newImages){
images.clear();
images.addAll(newImages);
notifyDataSetChanged();
}
@NonNull
@Override
public ImageListAdapter.ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.image, parent, false); // ContratBinding >> as your list item layout named "contrat"
return new ImageListAdapter.ImageViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ImageListAdapter.ImageViewHolder holder, int position) {
holder.bind(images.get(position));
}
@Override
public int getItemCount() {
return this.images.size();
}
public class ImageViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.img)
ImageView image;
public ImageViewHolder(View iview){
super(iview);
Log.d("TAG", "VIEW HOLDER");
ButterKnife.bind(this, iview);
}
void bind(ImageModel imageModel){
image.setImageResource(R.drawable.newimage);
}
}
}
Любая помощь будет высоко ценится.