如何为许多相同类型的组件制作循环?

时间:2014-09-03 18:55:17

标签: java android eclipse

我正在使用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
}

我该怎么做?如果可以,请帮助我,我会很开心。

1 个答案:

答案 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);
}

虽然,不确定这将是多么高效。