如何将可绘制图像添加到RecyclerView。我尝试使用以下方法添加:
names.add(R.drawables.image, "Image1");
但这给了我错误。
是否有其他方法可以将图像添加到arraylist中而不创建另一个类。
答案 0 :(得分:1)
要从可绘制对象中获取图像,必须在适配器中具有上下文,以便可以使用以下方法:
context.getDrawable(R.drawable.image)
但是这将迫使您将上下文发送到适配器,或者您必须直接从启动适配器的活动内部使用完全相同的方法(getDrawable(R.drawable.image)):
getDrawable(R.drawable.image)
我知道这听起来没有帮助,因为您需要适配器中的图像,因此 您要做的就是准备活动中的图像列表,然后将其发送到适配器的构造器中
答案 1 :(得分:0)
解决方案:,请按照。
第1步::声明一个全局对象。
public ArrayList<Integer> imgArrayList;
第二步:初始化
imgArrayList = new ArrayList<>();
第3步:以两种方式添加可绘制对象。
第一种方法:直接一个一个地添加图像。
imgArrayList.add(R.drawable.image1);
imgArrayList.add(R.drawable.image2);
imgArrayList.add(R.drawable.image3);
..... etc etc
第二种方法:制作一个 int 数组,如下所示:
int imgList[] = {R.drawable.image1, R.drawable.image2, R.drawable.image3}
然后
imgArrayList.addAll(imgList);
就这样,现在您选择要使用的对象。一切顺利。
答案 2 :(得分:0)
names.add(R.drawables.image, "Image1");
假设names
是一个字符串ArrayList,您尝试将“ Image1”添加到索引R.drawables.image
(在您的情况下,2131165305
这是一个很大的数字)
要解决您的问题,您可以创建一个整数值列表,并且仅添加可绘制的标识符,因此
ArrayList<Integer> drawableIds = new ArrayList<>();
drawableIds.add(R.drawable.image1);
drawableIds.add(R.drawable.image2);
然后将您的图片设置为
// add a for loop here or whatever
imageView.setImageResource(drawableIds.get(i));