修改适配器后重新加载ExpandableListView项目

问题描述:

我必须在我的expandablelistview中删除子项。 我的尝试是: 1.来自适配器的数据已成功移除。 2.试图用'm_list.invalidateViews()'重建列表视图' 结果是:exceptuion:索引超出范围。修改适配器后重新加载ExpandableListView项目

看debuger - childPosition的值大于适配器数据的数量。 Usualy getChildView被调用适配器中的每个项目。那为什么用childPosition调用大于数据大小的getChildView呢?

+0

notifyDataSetChanged()不起作用? – 2012-01-06 13:33:31

+1

它的工作原理。奇怪的事实是:适配器有3个项目,但getChildView被称为4 .....可能视图是用缓存数据构建的,而不是适配器中的真实视图。 – Kostadin 2012-01-06 13:40:26

更改从中加载列表的数据集,并调用adapter.notifyDataSetChanged();

+0

尝试notifyDataSetChanged - 它确定。可能是InvalidateViews重建视图,但适用于从适配器缓存的数据:( – Kostadin 2012-01-06 13:37:35

+0

同样的事情发生在我身上 – feresr 2015-08-06 19:06:45