假设一个场景,如果开发一个类似计算器的应用,不说操作符,单是0~9十个数字就得连续写10次findViewById(),想想真是够了。那么,有没有简单点的方法呢?答案是肯定的。
我们知道,findViewById()方法传入的参数是int类型的,只要命名规则统一,就可以通过循环获取到。例如,10个Button的ID分别为:btn0~btn9,那么,我们直接定义一个 List<Button> btns = new ArrayList<Button>();
Resources res = getResources();
for (int i = 0; i < 9; i++) {
int id = res.getIdentifier("btn" + i, "id", getPackageName());
Button btn = (Button) findViewById(id);
btns.add(btn);
}
这样,我们就取得了10个Button对象。注意,布局文件中的Button命名为:btn0~btn9。
我们知道,findViewById()方法传入的参数是int类型的,只要命名规则统一,就可以通过循环获取到。例如,10个Button的ID分别为:btn0~btn9,那么,我们直接定义一个 List<Button> btns = new ArrayList<Button>();
Resources res = getResources();
for (int i = 0; i < 9; i++) {
int id = res.getIdentifier("btn" + i, "id", getPackageName());
Button btn = (Button) findViewById(id);
btns.add(btn);
}
这样,我们就取得了10个Button对象。注意,布局文件中的Button命名为:btn0~btn9。