1


我想使用一些视图 ID,并且我想要一个循环来遍历所有视图。这就是我的意思:

for (int i = 0;i<10;i++) {
    TextView tv = (TextView) findViewById(R.id.txt+i);
}

当然这是错误的,但可以说我在布局 10 中TextViews

txt0

txt1

txt2

.

.

.

txt9

我希望循环执行如下操作:

TextView tv = (TextView) findViewById(R.id.txt0);
TextView tv = (TextView) findViewById(R.id.txt1);
.
.
.
TextView tv = (TextView) findViewById(R.id.txt+9);

可能吗??

谢谢!

4

3 回答 3

4

您可以通过名称找到 ID,如下所示:

for(int i=0;i<10;i++){
     int id = getResources().getIdentifier("txt" + i, "id", context.getPackageName());
     TextView tv = findViewById(id);
     // but what here?
}

但是,这只会分配一个 textview 10 次。这之后你在做什么?我看不出这有什么用,但也许您可以在此基础上进行构建。

于 2012-12-01T16:31:54.660 回答
0

而是试试这个

TextView tv = new TextView(context); 

并将标签设置为for循环索引并通过标签访问它

于 2012-12-01T16:27:57.977 回答
-1

尝试这个:

TextView[] tv=new TextView[10];
for (int i = 0;i<10;i++) {
    tv[i] = (TextView) findViewById(R.id.txt+i);
 tv[i].setId(1000+i);

}

当你想使用文本视图时。使用电视[1] ...等

于 2012-12-01T16:30:20.507 回答