TextView text;
for (int j = 1; j < 3; j++)
{
text+j = new TextView(this);
}
预期产出:
text1 = new TextView(this);
text2 = new TextView(this);
text3 = new TextView(this);
但是我在运行此代码时遇到错误..
答案 0 :(得分:6)
这在Java中无效。您无法在Java中动态命名变量。该名称已在编译时自行检查。因此, L.H.S 中的此text+j
等表达式将永远不会起作用。您可以使用arrays。
您可以改为定义TextView
数组。喜欢:
final int SIZE = 3;
TextView[] textViews = new Text[SIZE];
for (int j = 0; j < SIZE; j++)
{
textViews[j] = new TextView(this);
}
初始化数组TextView[] textViews
中的所有元素后,您可以使用 index ,textViews[0],textViews[1]....
访问各个元素。请记住,数组的编号从0
到array.length-1
,在您的情况下从0
到2
。
答案 1 :(得分:2)
您不能像在尝试那样将整数值附加到Java中的变量名。你想要的是一系列TextView's
为你的目的。你可以这样做:
int textViewCount = 3;
TextView[] textViewArray = new TextView[textViewCount];
for(int i = 0; i < textViewCount; i++) {
textViewArray[i] = new TextView(this);
}
希望这会有所帮助。
答案 2 :(得分:0)
在这种情况下,最好使用数组。
TextView[] tv = new Textview[3];
for(int i = 0; i < 3; i++)
tv[i] = new Textview(this);
您发布的代码试图动态生成变量,这是无法完成的。