动态选择for循环

时间:2015-05-21 01:20:46

标签: java android

这似乎很简单,但我不明白如何做到这一点,并且没有想出如何为谷歌说出来。我有一组用XML声明的12个ImageViews,所以我想在for循环中声明它们,使用像

这样的东西
for(int i = 1; i < 13; i++) {
    ImageView moles[i] = FindViewById(R.id.mole + i);
}

但我不理解如何为FindViewById声明参数。

3 个答案:

答案 0 :(得分:1)

R.id.mole由Android SDK动态生成。它是int,对,但是你不能使用int作为int,因为下一个不必是previous + 1。

如果您使用动态生成的ID,则假设它们是随机的。

答案 1 :(得分:1)

通常你会制作一个硬编码的数组

int ids[] = {R.id.image1, R.id.imag2,...};
for(int i = 0; i < ids.size; i++) {
    ImageView moles[i] = FindViewById(ids[i]);
}

答案 2 :(得分:1)

你做不到。但你能得到的最接近的是

private static final int[] imageArray = {R.id.mole1, R.id.mole2, R.id.mole3, R.id.mole4, R.id.mole5};
private ImageView[] moles= new ImageView[idArray.length];

然后你的for循环看起来像这样

for (int i=1; i<=imageArray.length; i++) {
    moles [i] = (ImageView)findViewById(idArray[i]); // Fetch the view id from array
    ....
}