Android 删除元素后无法在可展开列表视图中获取组的正确状态
我正在将arraylist传递给我的可扩展列表适配器。当我从arraylist中的特定位置删除一个元素,然后用notifyDataSetChanged通知适配器时,我在可扩展列表视图中没有获得grp的正确状态 例如: 1-我的arraylist有5个元素,adaper在显示屏上显示5个视图 2-最初,所有组都将处于折叠状态 3-我正在扩展第一组。[grp 1-膨胀,grp 2-折叠,grp 3-折叠,grp 4-折叠,grp 5-折叠] 4-现在我删除第一个grp。删除后,我的arraylist将有4个元素,GRP2变为grp1,GRP3变为GRP2,依此类推 5-删除后, grp shd的正确状态是[grp 1-折叠,grp 2-折叠,grp 3-折叠,grp 4-折叠],但我得到的不是这个, grp的状态为[grp 1-展开,grp 2-折叠,grp 3-折叠,grp 4-折叠] 为什么grp 1上个版本是grp 2被扩展了???它应该处于崩溃状态 我认为这是一个很小的问题,但我无法找到解决办法。请提出解决方案。如果您能尽早回复,我们将不胜感激。当您调用notifyDataSetChanged时,您会让适配器知道数据已更改,但它不会告诉任何有关视图的信息。因此,适配器记住第一个组已展开,当您通知适配器更改时,它将获取新数据并用它填充ExpandableListView,从而保持第一个组已展开 解决方案是手动控制扩展哪些组,请参见此处的恢复状态:Android 删除元素后无法在可展开列表视图中获取组的正确状态,android,expandablelistview,viewstate,expandablelistadapter,notifydatasetchanged,Android,Expandablelistview,Viewstate,Expandablelistadapter,Notifydatasetchanged,我正在将arraylist传递给我的可扩展列表适配器。当我从arraylist中的特定位置删除一个元素,然后用notifyDataSetChanged通知适配器时,我在可扩展列表视图中没有获得grp的正确状态 例如: 1-我的arraylist有5个元素,adaper在显示屏上显示5个视图 2-最初,所有组都将处于折叠状态 3-我正在扩展第一组。[grp 1-膨胀,grp 2-折叠,grp 3-折叠,grp 4-折叠,grp 5-折叠] 4-现在我删除第一个grp。删除后,我的arraylist
我已经照你说的做了,但仍然面临同样的问题。即使在为所有组调用Oncollapsegroup方法之后,适配器仍然为一个组调用getchildview方法,该方法正在扩展。