我有 48 个变量(TextViews),例如 tv1、tv2、tv3、tv4...tv48。
我想使用 for 循环为这些变量设置一个值,因为我不想将同一行写下 48 次。
像这样的东西:
for (int i=1; i<49; i++)
{
"tv"+i.setText(i);
}
如何做到这一点?
像这样初始化它们:
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);
}
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
数组中。
"tv"+i
只能与反射一起使用。
我会将这些 TextViews 放在一个数组中,然后
for (int i=0; i<textViews.length; i++)
{
textViews[i].setText(""+i);//be a String. not an int...
}
我会用,在哪里textViews = new TextViews[]{tv1,tv2..tv48}
我希望它有帮助!