文本过滤后从 Android ListView/ArrayAdapter 中删除项目不起作用
Posted
技术标签:
【中文标题】文本过滤后从 Android ListView/ArrayAdapter 中删除项目不起作用【英文标题】:Removing items from Android ListView/ArrayAdapter doesn't work after text filtering 【发布时间】:2011-03-14 03:13:33 【问题描述】:我有一个由 ArrayAdapter 支持的 android ListView。当用户单击列表中的某个项目时,该项目将被删除。这一切似乎都可以正常工作,您可以单击每个项目,直到没有剩余项目为止。
但是,一旦发生文本过滤,一切都会出错。一旦列表被过滤一次,即使该过滤器被清除,所有后续对适配器的 remove(Object) 调用都无法从可见列表中删除该项目。我试过在删除项目之前调用 ListView.clearTextFilter() ,在删除项目后调用它,而不是全部调用。没有区别。
我查看了 ArrayAdapter.java 的源代码,似乎一旦设置了过滤,适配器就会使用一个集合来响应查询,但会更新另一个集合。我看不出有什么明显的方法可以让它恢复其行为。这是一个错误还是我错过了什么?
【问题讨论】:
现在我正在删除一个项目时创建一个新适配器。它有效,但它可能更有效。 【参考方案1】:这似乎是一个错误。我举报了here。
【讨论】:
7年后,你找到解决办法了吗? @S.R 我什至不记得这是针对哪个项目的,但我想我只是采用了上面评论中提到的解决方法(每次都使用新适配器)。以上是关于文本过滤后从 Android ListView/ArrayAdapter 中删除项目不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UIButton 点击后从 UITextfield 捕获文本