我正在使用Eclipse(Android + Java),我在Form上有20个组件(20x ImageView)。 ImageViews的名称(我的意思是@id)看起来像: button1,button2,button3等
现在我想用循环来改变它们上的图形。
for (int i = 0; i < 20; i++)
{
button (and what here?).setImageResource(R.drawable.grafika);
}
但我不知道如何在循环中执行此操作。 没有循环,我可以这样做:
button1.setImageResource(R.drawable.grafika);
button2.setImageResource(R.drawable.grafika);
button3.setImageResource(R.drawable.grafika);
button4.setImageResource(R.drawable.grafika);
//etc
但我想使用一个看起来像这样的循环:
for (int i = 1; i < 21; i++)
{
("button" + i).setImageResource(R.drawable.grafika); //i as string
}
我该怎么做?如果可以,请帮助我,我会很开心。
答案 0 :(得分:0)
您应该能够使用以下代码动态获取资源ID:
for (int i = 1; i < 21; i++)
{
int resID = getResources().getIdentifier("button"+i , "id", getPackageName());
((ImageView) findViewById(resID)).setImageResource(R.drawable.grafika);
}
虽然,不确定这将是多么高效。