2011-12-05 73 views
0

我想要一个imageviews数组,但我不知道如何用imageview类型的对象填充它。用ImageViews Android填充数组

ImageView[] forAdapter = new ImageView[imageIds.size()]; 
for(int i = 0; i < imageIds.size(); i++) 
{ 
        ImageView mImageView = new ImageView(context); 
        forAdapter[i] = mImageView.setImageDrawable(((imagesPulled.get(imageIds.get(i))))); 
} 

,这并不因为.setImageDrawable工作不返回ImageView的,我不知道,其实做任何物体!

我考虑在数组中使用drawable,但我最终为listview设置了一个arrayadapter,并且我不能用drawables做一个R.layout(我将得到一个类转换异常,因为xml文件正在使用ImageView不是可绘制的类型),所以我只能将ImageView放入数组中 - 除非我正在接近错误的问题。

回答

2

你的mImageView是ImageView本身。

所以,forAdapter [i] = mImageView应该可以正常工作。如果您使用其他操作,则可以在分配前执行这些操作。

6

你的代码几乎就在那里!我只是会做一些小改变,并在下面对其进行评论:

ImageView[] forAdapter = new ImageView[imageIds.size()]; 
for(int i = 0; i < imageIds.size(); i++) 
{ 
        forAdapter[i] = new ImageView(context); 
        forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i))); 
} 

第一:如果你想初始化forAdapter [I],你并不需要创建一个新的变量,并将其分配给它。只要在那里:

forAdapter[i] = new ImageView(context); 

设置图像(使用setImageDrawable,setImageResource等)不返回任何东西。这是你的图像本身上做所有的工作你要做的就是调用从变量要修改的方法:

forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i))); 

大功告成:) 如果您有任何疑问,只是要求在评论。

希望它有帮助。

+0

谢谢你,是的,我得到它的工作。结束了对自定义阵列适配器的改变。我试图跳过自定义阵列适配器,尽管它的灵活性 – CQM