我想要一个Button
点击后,删除ListView
中所有选中的项目。我已经设置了所有的xml项目,我只是不知道如何编写java代码。
答案 0 :(得分:1)
ListView
显示来自Adapter
的数据。为了从视图中删除项目,需要从Adapter
中删除项目并通知视图。在Android中,Adapter
通过调用notifyDataSetChanged()
来通知视图。
如何从适配器中删除项目取决于您的特定适配器。 SimpleCursorAdapter
从基础Cursor
获取其数据。要删除项目,应从基础Cursor
中删除该项目。例如,使用SQLiteCursor
数据库中的一行需要删除。
如果您使用ArrayAdapter
只需在适配器上调用remove(T object)
即可。它会自动为您调用notifyDataSetChanged()
。
<强>更新强>: 我在git hub看到了代码。以下是如何让您的应用尽快运行的一些指示。
尝试将代码重构为较小的可抓取部分。从extracting some methods开始,为部分大型方法提供可理解的名称。
问题是数据库中可能有数百行,只有足够的视图来填充屏幕。没有任何地方重新记录检查行的内容,因此无法删除它们。您可能需要扩展BaseAdapter或SimpleCursorAdapter
以保持行的状态(已检查或未检查)。阅读优秀的android documentation。
我的观点是,视图,您的CheckBox
和包含要显示的数据的模型之间存在区别。所以请查看Model-View-Controller。你现在可以忽略控制器的概念。