android通过Id迭代视图

Ron*_*oss 0 android loops for-loop view

我有一个布局包含4个TextViews与IDS:"名1","名称2","NAME3","NAME4"

我想用for循环迭代它们,有没有办法做到这一点?

就像是

    for(int i = 1; i <= 4; i++)
    {
        findViewById(R.id."Name" + i)
    }
Run Code Online (Sandbox Code Playgroud)

我知道这段代码远非真实,但有什么帮助吗?谢谢!罗恩

Lux*_*ode 5

不,你不能这样做,因为R.id.xyz引用静态类的静态int.它不是一个可以像这样串联起来的字符串.此外,您的代码忽略了findViewById的返回值,因此它什么都不做(尽管我意识到您提到代码远非真实,但实际的用例可能有助于澄清您尝试做的事情).R.id."名称"没有任何意义,会给你一个编译器错误.

循环你可以做这样的事情:

int[] ids = {R.id.foo, R.id.bar};
Run Code Online (Sandbox Code Playgroud)

然后

for(int i = 0; i<ids.length; i++) {
View v = findViewById(ids[i]);
}
Run Code Online (Sandbox Code Playgroud)