作者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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1437645011.A.EF9.html
1F:→ llI: 删了之後整个linearlayout重建一次? 07/23 18:33
2F:→ KeySabre: 所以问题是listener中用旧的位置去对已经变化的资料list 07/23 19:38
3F:→ KeySabre: 可以试试 setTag/getTag,再使用data去remove而非使用in 07/23 19:41
4F:→ KeySabre: dex 07/23 19:41
5F:→ keieykdx: 感谢大家回应,我会尝试看看的 07/24 09:30
6F:→ keieykdx: 後来使用 linearlayout重建一次 的方法解决了问题 07/24 10:55