-1
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);

但是在运行此代码时出现错误..

4

3 回答 3

6

这在 Java 中永远不起作用。您不能在 Java 中动态命名变量。名称已在编译时检查。text+j因此,在LHS中这样的表达式永远不会起作用。您可以使用数组

您可以定义一个数组TextViewinstead 。喜欢 :

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]....访问各个元素。请记住,数组的索引是从0to array.length-1,在您的情况下是从0to 2

在此处输入图像描述

于 2013-07-29T12:03:50.600 回答
2

您不能像您尝试做的那样,将整数值附加到 Java 中的变量名。你想要的是TextView's你的目的的数组。你可以这样做:

int textViewCount = 3;
TextView[] textViewArray = new TextView[textViewCount];

for(int i = 0; i < textViewCount; i++) {
   textViewArray[i] = new TextView(this);
}

希望这可以帮助。

于 2013-07-29T12:03:26.323 回答
0

在这种情况下,您最好使用数组。

TextView[] tv = new Textview[3];
for(int i = 0; i < 3; i++)
    tv[i] = new Textview(this);

您发布的代码试图动态生成变量,这是无法完成的。

于 2013-07-29T12:03:20.120 回答