我想使用一些视图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);
有可能吗?
谢谢!
答案 0 :(得分: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次。这之后你在做什么?我看不出它是如何有用的,但也许你可以建立它。
答案 1 :(得分:0)
相反尝试这个
TextView tv = new TextView(context);
并将tag设置为循环索引并通过标记
访问它答案 2 :(得分:-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);
}
当你想要使用textview时。使用tv [1] ...等