如何更新自定义适配器内的列表视图?
我有一个扩展ArrayAdapter的自定义适配器,它包含列表中每个项目的复选框。如何更新自定义适配器内的列表视图?
内getview本身我有onCheckedChanged听众,如果检查从数据库中删除一个项目。但是,listview不会更新,我不能调用notifyDataSetChanged(),因为我不在主类中。任何想法如何?
发布代码,以便读者能够理解您的问题。
您不必在扩展ArrayAdapter的类中设置任何侦听器。在这个课堂上,我们只是将数据膨胀到视图。
卸下onCheckedChanagedListener
从Adapter
类,并将其放置在ListActivity
或Fragment
正在使用此适配器。
更新,对不起! – user1876202 2013-03-06 18:01:30
谢谢你,我会在哪里将CheckedChangedListener放在其他类中?它会在.onClickListener中还是完全独立? – user1876202 2013-03-06 18:44:15
可能是这些屁股可以帮助你! 1- [链接](http://www.vogella.com/articles/AndroidListView/article.html#listviewselection) 2- [链接](http://androidcocktail.blogspot.com/2012/04/adding -checkboxes-to-custom-listview-in.html) – 2013-03-06 18:55:24
在您的ListView上调用invalidate()
。这使得列表被刷新并再次显示。 也许它会解决你的问题。
而且我不明白你为什么不能打电话notifyDataSetChanged()
?
因为我在实际的自定义适配器类和getView中使用checkedchangedlistener,而不是在使用自定义适配器的类中。 – user1876202 2013-03-06 18:48:17
您是否尝试在任何复选框被勾选时尝试在列表视图上调用'invalidate()'? – Swayam 2013-03-06 18:53:39
我不能,listview在另一个类中。 – user1876202 2013-03-06 19:18:43
http://www.youtube.com/watch?v=wDBM6wVEO70。看看这个样子。 – Raghunandan 2013-03-06 18:00:26