我的Activity中有20个ImageView。我需要一种方法来轻松管理它们。
我的代码现在就是这样:
Imageview img1 = (Imageview) findviewbyid(R.id.imageview1);
img1.setbackgroundresource(R.drawable.image1);
Imageview img2 = (Imageview) findviewbyid(R.id.imageview2);
img2.setbackgroundresource(R.drawable.image2);
Imageview img3 = (Imageview) findviewbyid(R.id.imageview3);
img3.setbackgroundresource(R.drawable.image3);
.
.
.
但我需要一种更简单的方法!
答案 0 :(得分:0)
您可以使用所有资源创建一组ID:
int[] myIds = {R.id.imageview1, R.id.imageview2, R.id.imageview3, ...};
int[] myDrawables = {R.drawable.image1, R.drawable.image2, R.drawable.image3, ...};
然后使用for循环迭代它,同时,map
函数(我知道这是Java 6 ...)。
for (int i = 0; i< myIds.length; i++) {
Imageview img = (Imageview) findviewbyid(myIds[i]);
img.setbackgroundresource(myDrawables[i]);
}
虽然最好将GridView / ListView与适配器一起使用
答案 1 :(得分:0)
似乎所有资源都没有动态定义。为什么不在xml中设置它们:
<ImageView
android:id="@+id/imageview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image1"/>