0

我从 ListView 中删除项目时遇到问题。

我正在使用 BaseExpandableListAdapter 的子类。

问题是当我删除一个项目时,我更改了基础数据,之后我调用了 notifyDataSetChanged。一切似乎都很好。但是 ListView 的刷新不会立即发生。因此,如果有人继续检查/取消检查我的某些项目,他们将指向适配器中不再存在的数据(但它们仍显示在 ListView 中)。

示例

假设我有一个 ListView,适配器中有 3 个视图和 3 个项目(1、2、3):

  1. 我选择第 3 项并按删除。现在它们是适配器中的 3 个视图和 2 个项目

  2. 调用 notifyDataSetChanged(注意 ListView 仍然有 3 个视图,因为它没有时间刷新)

  3. 我继续选择第三个项目,它将向我的适配器查询不再存在的项目

我的问题是我该如何处理这种情况?这似乎是调用 notifyDataSetChanged 和刷新 ListView 之间的间隔,在该间隔内,我们需要检查适配器中收到的所有请求是否仍然有效。

4

1 回答 1

0

尝试删除您的列表项,例如。

filelist.remove("your selected item position".intValue());

这可能会解决您的问题。

于 2013-04-11T13:21:49.850 回答