如何在不创建其他类的情况下将图像添加到recyclerview?

时间:2018-10-28 14:32:45

标签: android android-recyclerview

如何将可绘制图像添加到RecyclerView。我尝试使用以下方法添加:

names.add(R.drawables.image, "Image1");

但这给了我错误。

是否有其他方法可以将图像添加到arraylist中而不创建另一个类。

3 个答案:

答案 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步:以两种方式添加可绘制对象。

  1. 第一种方法:直接一个一个地添加图像。

    imgArrayList.add(R.drawable.image1);
    imgArrayList.add(R.drawable.image2);
    imgArrayList.add(R.drawable.image3);
    ..... etc etc
    
  2. 第二种方法:制作一个 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));