这似乎很简单,但我不明白如何做到这一点,并且没有想出如何为谷歌说出来。我有一组用XML声明的12个ImageViews,所以我想在for循环中声明它们,使用像
这样的东西for(int i = 1; i < 13; i++) {
ImageView moles[i] = FindViewById(R.id.mole + i);
}
但我不理解如何为FindViewById声明参数。
答案 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
....
}