带有ImageViews的Android填充数组

CQM*_*CQM 0 android listview drawable android-arrayadapter imageview

我想要一组图像视图,但我不知道如何使用imageview类型的对象填充它.

 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)))));
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为.setImageDrawable不返回imageview,我不知道任何实际做的对象!

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

Dal*_*osa 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)));
}
Run Code Online (Sandbox Code Playgroud)

第一:如果要初始化forAdapter [i],则无需创建新变量并将其分配给它.就在那里做:

forAdapter[i] = new ImageView(context);
Run Code Online (Sandbox Code Playgroud)

设置图像(使用setImageDrawable,setImageResource等)不会返回任何内容.这是对图像本身的操作,所以你要做的就是从你想要修改的变量中调用方法:

forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i)));
Run Code Online (Sandbox Code Playgroud)

你已经完成了:)如果你有任何疑问,请在评论中提问.

希望能帮助到你.