带有for循环的“findViewById”

时间:2015-04-10 11:22:06

标签: android for-loop findviewbyid

这是我的代码:

ImageView img1 = (ImageView) findViewById(R.id.img1);
ImageView img2 = (ImageView) findViewById(R.id.img2);
ImageView img3 = (ImageView) findViewById(R.id.img3);
ImageView img4 = (ImageView) findViewById(R.id.img4);
ImageView img5 = (ImageView) findViewById(R.id.img5);
ImageView img6 = (ImageView) findViewById(R.id.img6);
ImageView img7 = (ImageView) findViewById(R.id.img7);
ImageView img8 = (ImageView) findViewById(R.id.img8);
ImageView img9 = (ImageView) findViewById(R.id.img9);

我想创建这样的东西:

     for (int i=1; i<=9; i++) { 
ImageView img+i = (ImageView) findViewById(R.id.img+i);}

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这样做。您可以从存储在xml或代码中的数组中获取可绘制的名称。

for (int i=1; i<=9; i++) { 

int id = getResources().getIdentifier("drawableName", "drawable", context.getPackageName());

ImageView img = (ImageView) findViewById(id);
}

此处“drawableName”是您图片的名称,并保持“可绘制”原样。

答案 1 :(得分:0)

你不能在循环中这样做。 基本上R.id.img是一个整数和 如果你做R.id.img + i,它将产生一些随机整数。