【问题标题】:Reload ExpandableListView items after adapter modified修改适配器后重新加载 ExpandableListView 项
【发布时间】:2012-02-04 05:22:27
【问题描述】:

我必须删除可展开列表视图中的子项。 我的尝试是: 1. 适配器数据删除成功。 2. 尝试使用 'm_list.invalidateViews()' 重建列表视图 结果是:异常:索引超出范围。

查看调试器 - childPosition 的值大于适配器数据的计数。奇怪。 通常为适配器中的每个项目调用 getChildView。那么为什么调用 getChildView 时 childPosition 大于数据大小?

【问题讨论】:

  • notifyDataSetChanged() 不起作用??
  • 它有效。奇怪的事实是:适配器有 3 个项目,但 getChildView 被称为 4 .....可能视图是使用缓存数据构建的,而不是来自适配器的真实数据。

标签: android adapter expandablelistview


【解决方案1】:

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

【讨论】:

  • 试过 notifyDataSetChanged - 它运行正常。可能 InvalidateViews 重建视图,但适用于来自适配器的缓存数据:(
  • 同样的事情发生在我身上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2020-09-13
  • 2018-06-07
  • 1970-01-01
  • 2018-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多