看板 AndroidDev 關於我們 聯絡資訊
有一個語法上的問題 我使用了 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