循环遍历众多变量

时间:2012-09-18 18:10:29

标签: java android

我有48个变量(TextViews),比如tv1,tv2,tv3,tv4 ...... tv48。

我想用for循环设置这些变量的值,因为我不想写下48次同一行。

这样的事情:

for (int i=1; i<49; i++)
{
        "tv"+i.setText(i);
}

如何实现这一目标?

3 个答案:

答案 0 :(得分:5)

像这样初始化它们:

TextView[] tv = new TextView[48];

然后你可以使用for循环在其中设置文本:

for(int i=0; i<48; i++)
{
   tv[i].setText("your text");
}

编辑:在您的XML文件中,为所有文本视图提供相同的ID。对于例如tv0,tv1,tv2等 初始化一个字符串数组,它将这些ID作为字符串。

String ids[] = new String[48];
for(int i=0; i<48; i++)
{
   ids[i] = "tv" + Integer.toString(i);
}

现在,要初始化TextView数组,请执行以下操作:

for(int i=0; i<48; i++)
{
   int resID = getResources().getIdentifier(ids[i], "id", "your.package.name");
   tv[i] = (TextView) findViewById(resID);
}

答案 1 :(得分:2)

TextView[] textViews = new TextView[48];

int[] ids = new int[48];

for(int i=0;i<48;i++) {
    textViews[i] = (TextView) findViewById(ids[i]);
}

for(int i=0;i<48;i++) {
    textViews[i].setText(String.valueOf(i));
}

在这里,您需要将所有ID添加到ids数组。

答案 2 :(得分:1)

"tv"+i

只能用于反射。

我会把那些TextView放在一个数组中

for (int i=0; i<textViews.length; i++)
{
        textViews[i].setText(""+i);//be a String. not an int...
}

我会使用textViews = new TextViews[]{tv1,tv2..tv48}

我希望它有所帮助!