[問題] 請教寫法上的問題

看板AndroidDev作者 (YOz桑)時間10年前 (2015/07/23 17:50), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
有一個語法上的問題 我使用了 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

07/23 18:33, , 1F
刪了之後整個linearlayout重建一次?
07/23 18:33, 1F

07/23 19:38, , 2F
所以問題是listener中用舊的位置去對已經變化的資料list
07/23 19:38, 2F

07/23 19:41, , 3F
可以試試 setTag/getTag,再使用data去remove而非使用in
07/23 19:41, 3F

07/23 19:41, , 4F
dex
07/23 19:41, 4F

07/24 09:30, , 5F
感謝大家回應,我會嘗試看看的
07/24 09:30, 5F

07/24 10:55, , 6F
後來使用 linearlayout重建一次 的方法解決了問題
07/24 10:55, 6F
文章代碼(AID): #1LiBZJxv (AndroidDev)