这可能是一个我可能会再次忽视的问题,但如果你能帮助我解决它,我将非常感激。 使用此代码从drawable获取图像并将其发送到Imageview.setImageResource(其中我的Imageview在gridview中);一切顺利
private Integer[] imageIDs = {
//R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4,
R.drawable.image5,
R.drawable.image6,
R.drawable.Image7,
};
//Here is my another code to call imageIDs as ImageResource
ImageView iv = (ImageView)v.findViewById(R.id.grid_item_picture);
iv.setImageResource(imageIDs[position]);
//position is a default value of gridview starting from 0
现在我要完成的是删除该数组并将其转换为ArrayList,因为需要这些内部数据是动态的。所以我创建了这个新代码
ArrayList<String> array_image = new ArrayList<String>();
array_image.add("R.drawable.image6");
array_image.add("R.drawable.image1");
并将ImageView ImageResource设置为此代码
iv.setImageResource(array_image .get(position));
我收到错误说:
ImageView类型中的方法setImageResource(int)不适用于参数(Object) 你能帮我解决一下吗?
答案 0 :(得分:7)
您正在为字符串定义ArrayList。但是,您需要整数作为资源标识符。
改为这样做;
ArrayList<Integer> array_image = new ArrayList<Integer>();
array_image.add(R.drawable.image6);
array_image.add(R.drawable.image1);
答案 1 :(得分:1)
List<Integer> mL = new ArrayList<Integer>();
mL.add(R.drawable.image2);
答案 2 :(得分:0)
请尝试
ArrayList<int> array_image = new ArrayList<int>();
array_image.add(R.drawable.image6);
array_image.add(R.drawable.image1);
然后
iv.setImageResource(array_image .get(position));