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);
但是在运行此代码时出现错误..
这在 Java 中永远不起作用。您不能在 Java 中动态命名变量。名称已在编译时检查。text+j
因此,在LHS中这样的表达式永远不会起作用。您可以使用数组。
您可以定义一个数组TextView
instead 。喜欢 :
final int SIZE = 3;
TextView[] textViews = new Text[SIZE];
for (int j = 0; j < SIZE; j++)
{
textViews[j] = new TextView(this);
}
初始化数组中的所有元素后,TextView[] textViews
您可以使用索引textViews[0],textViews[1]....
访问各个元素。请记住,数组的索引是从0
to array.length-1
,在您的情况下是从0
to 2
。
您不能像您尝试做的那样,将整数值附加到 Java 中的变量名。你想要的是TextView's
你的目的的数组。你可以这样做:
int textViewCount = 3;
TextView[] textViewArray = new TextView[textViewCount];
for(int i = 0; i < textViewCount; i++) {
textViewArray[i] = new TextView(this);
}
希望这可以帮助。
在这种情况下,您最好使用数组。
TextView[] tv = new Textview[3];
for(int i = 0; i < 3; i++)
tv[i] = new Textview(this);
您发布的代码试图动态生成变量,这是无法完成的。