[問題] 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