[閒聊] 用R.id連加方法取得n個UI widget

看板AndroidDev作者 (程式猿)時間13年前 (2012/06/08 02:05), 編輯推噓4(402)
留言6則, 4人參與, 最新討論串1/2 (看更多)
剛剛做了一個實驗,假如說一個layout上面有100個button (先不管造成這種局面的原因), 在Java@Android的程式架構下, 原來也可以用Button物件陣列和resource ID連加來處理: //i=0~99 buttons[i] = (Button)findViewById(R.id.firstButton + i); 不過這樣的作法好像非正規也不聰明,例如layout版面改變一下, 就得一段段下去改程式了,特別是在有複雜UI的環境下... 所以,還是用執行階段加入widget、或是利用Inflater物件才是正解? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.217.188.133

06/08 10:17, , 1F
因為R.id.firstButton本身就是個int
06/08 10:17, 1F

06/08 10:18, , 2F
執行階段動態加入Button才是問題的根本解法
06/08 10:18, 2F

06/08 11:00, , 3F
aapt是用檔名來排編號的 所以檔名按字母排就可以連號了!
06/08 11:00, 3F

06/08 11:29, , 4F
如果只是為了get view,buttons 上層用個ViewGroup包起來
06/08 11:29, 4F

06/08 11:30, , 5F
然後在用ViewGroup.getChildAt(i) 這樣有正規到嗎?
06/08 11:30, 5F

06/08 22:48, , 6F
程式動態加入,用個List存起來不就好了?
06/08 22:48, 6F
文章代碼(AID): #1FqLtIj- (AndroidDev)
文章代碼(AID): #1FqLtIj- (AndroidDev)