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

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

Links booklink

Contact Us: admin [ a t ] ucptt.com