作者keieykdx (YOz桑)
看板AndroidDev
標題[問題] 請教寫法上的問題
時間Thu Jul 23 17:50:07 2015
有一個語法上的問題
我使用了 Linearlayout 在迴圈中陸續 加入 items (必須使用這方式), 語法如下:
linearlayout.addView(item);
item 中有個刪除該 row 的 button, 我在 addView 之前綁訂他的監聽,
其中除了removeView 之外, 同時也刪除了該 row 於 List 內的資料。
但是在綁訂刪除按鈕監聽的時候,必須將 i 轉變成 finalI,
因為他是 inner class, 此時的 finalI 是為了用來處理要刪除 List 中第幾個資料。
最後在執行的時候,如果從最後一個刪除回來不會有任何錯誤。
但假設先刪除中間某個在刪除最後一個就會 crash,
原因是刪除 List 資料時 OutOfBounds,
因為最後一個的 finalI 不會因為刪除中間後自動往前移動一個。
請問有辦法讓他自己往前移動一格嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.110.106
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1437645011.A.EF9.html
→ llI: 刪了之後整個linearlayout重建一次? 07/23 18:33
→ KeySabre: 所以問題是listener中用舊的位置去對已經變化的資料list 07/23 19:38
→ KeySabre: 可以試試 setTag/getTag,再使用data去remove而非使用in 07/23 19:41
→ KeySabre: dex 07/23 19:41
→ keieykdx: 感謝大家回應,我會嘗試看看的 07/24 09:30
→ keieykdx: 後來使用 linearlayout重建一次 的方法解決了問題 07/24 10:55