Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SwipeToDismiss ListView会弄乱项目_Android_Listview - Fatal编程技术网

Android SwipeToDismiss ListView会弄乱项目

Android SwipeToDismiss ListView会弄乱项目,android,listview,Android,Listview,我使用这个SwipeToDismissListener来关闭列表视图中的项目 解雇工作正常,也返回正确的解雇位置,但后来事情开始变得奇怪 在onDismiss中,我从适配器中删除该项: public void onDismiss(ListView listView, int[] reverseSortedPositions) { for (int i: reverseSortedPositions) { Item item

我使用这个SwipeToDismissListener来关闭列表视图中的项目

解雇工作正常,也返回正确的解雇位置,但后来事情开始变得奇怪

在onDismiss中,我从适配器中删除该项:

public void onDismiss(ListView listView, int[] reverseSortedPositions) {                
    for (int i: reverseSortedPositions) {
                Item item = adapter.getItem(i);
                adapter.remove(item);
            }
}
现在重新绘制列表视图时,项目开始看起来像列表中的其他项目(因此项目A显示项目B的文本),但是如果我实现onClickListener并检查它实际上是什么项目,它就是正确的项目,因此它显然是一个图形问题

我可以通过调用适配器来修复此错误外观。在一个项目上单击两次notifydatasetchanged。。。。 它不适用于适配器。如果我只调用它一次,或者如果我调用它延迟但自动

有人知道这里发生了什么吗

另外,我注意到,如果只需要进行一次重画,我的适配器.getView会为每个项目调用多次,我不知道这是否正常。

我自己解决了这个问题。 这只是ArrayAdapter中视图回收的一个糟糕实现。 所以,作为提示,若在运行时从列表中删除元素,请确保在getView中很好地实现视图循环