[问题] Android 用for循环写findViewById

楼主: v3dys6f3a3j5 (柳上上)   2014-10-12 20:32:47
我的程式里面有13个Button,我想问可不可以用for的循环写出
button1=(Button)findViewById(R.id.button1);
.
.
.
button13=(Button)findViewById(R.id.button13);
给你们看一下我写的错误程式
我有去参考网络上的
button[] btn=new button[13]; //我太久没写JAVA有点忘记[]里是要写12还是13
for(int i=1;i<14;i++){
btn[i]=(Button)findViewById(R.id.btn[i]);
}
红字是eclipse出现的底线
前面的btn反而没有底线
我看有人用这种方法写setOnClickListener是可以的
是不是R.id.id名称 这里没办法用阵列?
因为eclipse的除错跟我说要加上btn这个ID
等号前面的就没出现错误
作者: luoqr (.....)   2014-10-12 21:03:00
groovy:R.id."button$i" , java:reflection?
作者: roder (尊重 q( ̄︶ ̄)p 包容)   2014-10-12 21:05:00
宣告阵列是"数量" 起始是从[0]开始 所以最后是n-1
作者: ssccg (23)   2014-10-12 22:01:00
id里又没有btn这个阵列,你要用名称要用reflection
作者: HuangJC (吹笛牧童)   2014-10-12 22:54:00
查过 reflection,无法想像怎么用;只知有动态生成 rtti对我来说,我会注意 button1~13 是不是连续 id
作者: cooper6334 (库波)   2014-10-12 22:55:00
用getResources().getIdentifier()
作者: HuangJC (吹笛牧童)   2014-10-12 22:55:00
最好是,然后就以数字 forloop 去 loop 这个 id6334的解法好 :P

Links booklink

Contact Us: admin [ a t ] ucptt.com