【发布时间】:2011-03-14 03:13:33
【问题描述】:
我有一个由 ArrayAdapter 支持的 Android ListView。当用户单击列表中的某个项目时,该项目将被删除。这一切似乎都可以正常工作,您可以单击每个项目,直到没有剩余项目为止。
但是,一旦发生文本过滤,一切都会出错。一旦列表被过滤一次,即使该过滤器被清除,所有后续对适配器的 remove(Object) 调用都无法从可见列表中删除该项目。我试过在删除项目之前调用 ListView.clearTextFilter() ,在删除项目后调用它,而不是全部调用。没有区别。
我查看了 ArrayAdapter.java 的源代码,似乎一旦设置了过滤,适配器就会使用一个集合来响应查询,但会更新另一个集合。我看不出有什么明显的方法可以让它恢复其行为。这是一个错误还是我错过了什么?
【问题讨论】:
-
现在我正在删除一个项目时创建一个新适配器。它有效,但它可能更有效。
标签: android listview android-arrayadapter