在我的应用程序中,我在drawable文件夹中有一堆图像,我随机选择并使用imageView显示。我被告知ArrayList可以添加/删除列表中的对象... 以防止图像重复,我在下面使用了一些示例代码:
// create an array list
ArrayList imageHolder = new ArrayList();
int remaining = 10;
public void initArrayList(){
// add elements to the array list
imageHolder.add((int)R.drawable.child0);
imageHolder.add((int)R.drawable.child1);
imageHolder.add((int)R.drawable.child2);
imageHolder.add((int)R.drawable.child3);
imageHolder.add((int)R.drawable.child4);
imageHolder.add((int)R.drawable.child5);
imageHolder.add((int)R.drawable.child6);
imageHolder.add((int)R.drawable.child7);
imageHolder.add((int)R.drawable.child8);
imageHolder.add((int)R.drawable.child9);
}
//get random number within the current range
int randInt = new Random().nextInt((remaining-1));
//update the imageView config
ImageView image = (ImageView) findViewById(R.id.shuffleImageView);
image.setImageResource(imageHolder.get(randInt));
Eclipse报告image.setImageResource不能使用objectList提供的对象参数。实际参数应为int。任何线索如何解决这个问题?
提前致谢!
答案 0 :(得分:1)
使用List<Integer> imageHolder = new ArrayList<Integer>();
答案 1 :(得分:0)
ArrayList包含Objects,始终不是基本类型。当您将 int
设置为Integer
时,它们会被自动装箱到image.setImageResource((int)imageHolder.get(randInt));
个对象,当您将它们取回时,您也会获得整数对象。一个简短的解决方案是:
ArrayList
但要小心,取消装入空指针会导致NullPointerException,所以请确保你的randInt在arraylist的范围内。
编辑:
我完全错过了,但你初始化你的ArrayList imageHolder = new ArrayList();
:
List<Integer> imageHolder = new ArrayList<Integer>();
创建对象的ArrayList。相反,初始化ArrayList,如下所示,以创建整数的ArrayList:
{{1}}