Android 用 ID 字符串取到对应的 View

我们经常会需要在一个 for 循环中,取到多个 View,这时就需要用拼接得到的字符串作为 ID 来取 View。
但 findViewById 的参数是一个 Int 类型,一般用 R.id.xxx 来直接得到这个 Int 值。但如何用字符串来取 View 呢?

这时需要先用 getResources().getIdentifier 由 String 得到对应的 Int,比如下面将会获取 btnItem0 到 btnItem5 这六个按钮:

1
2
3
4
5
6
for (int i=0;i<=5;i++) {
String strButtonID = "btnItem" + i;
int buttonID = getResources().getIdentifier(strButtonID,"id","org.stoneark.packagename");
Button btnItem = (Button) findViewById(buttonID);
...
}