关于删除listview指定item的一个Bug

我的Listview的item里有一个Button,点击该btn可以删除当前行
但是我每次点击都是删除,最下面的一行,请各位大神看看原因何在图片说明

3个回答

将取itemPos的操作放在onClick里面

...
 public void onClick(View v) {
     int itemPos = (int)v.getTag();
     viewList.remove(itemPos);
     ...
 }
 ...
leilba
林深 回复qq_33550988: 发你了
大约 4 年之前 回复
qq_33550988
我闹 回复林深: 朋友,方便加个qq吗,我直接截图给你看
大约 4 年之前 回复
leilba
林深 回复qq_33550988: getView里面你是直接返回viewList.getPosition(position)的吗?
大约 4 年之前 回复
leilba
林深 回复qq_33550988: getView
大约 4 年之前 回复
qq_33550988
我闹 回复林深: 因为业务需求,要在listview的下面放一个加号btn,点击就增加一个item。item里包括一些btn和一个gridview用来添加照片之类的。主要就是要求可以动态的增加或者删除item
大约 4 年之前 回复
leilba
林深 回复qq_33550988: List里面最好单纯放数据,一般不会放View的,数量多多时候内存会很大。使用ListView就是为了避免这种情况出现。还有个问题:List里面的View什么时候添加进去的?
大约 4 年之前 回复
leilba
林深 回复qq_33550988: onClick里面打个断点看看数值是否正确吧
大约 4 年之前 回复
qq_33550988
我闹 回复林深: 我打印了position的值,每次操作确实是对应的positon,我在代码没截图出来的地方已经写了viewholder.ivDelete.setTag(position)了
大约 4 年之前 回复
leilba
林深 回复qq_33550988: position在每次getView的地方设置给ivDelete的tag中
大约 4 年之前 回复
qq_33550988
我闹 没有用,哎,按道理移除数据源对应项刷新一下就应该没问题的
大约 4 年之前 回复

目测 是final引起得原因,把final去掉

qq_33550988
我闹 也试过了,不知道什么情况
大约 4 年之前 回复

debug看看position是不是取到改行的值了,看起来应该是listview混乱了,position的值没有取到

omayyouhappy
清澈@Cherry list里面保存的布局对象的十六进制看看是否不同
大约 4 年之前 回复
qq_33550988
我闹 回复清澈@Cherry: 对啊,思路这样的将这个item布局添加进list里面,我想删除对应的item的remove掉就应该可以了的。刚断掉调试了一下,无论是position还是list的大小都是正确。太奇怪了
大约 4 年之前 回复
omayyouhappy
清澈@Cherry 回复qq_33550988: 通过+号按钮增加的布局能取到吗? 你已经保存在了list里面,应该是可以删除的,类似于微信的对话框???
大约 4 年之前 回复
qq_33550988
我闹 确实是对应的position,我在想是不是我的布局有一点问题,我的Listview的item是可以通过一个加号不断增加的,所以我的数据源其实一个List<View>,当然这可能没什么关系。
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问