在适配器的数据更改后重置ListView

时间:2010-11-21 16:32:40

标签: android listview reset

我有一个列表视图,可以根据内部状态显示项目(它 有项目和'已查看'项目)。我需要能够在之间切换 两个状态,我使用一个简单的按钮来改变适配器 state和适配器然后调用notifyDatasetChanged()。 我的数据会更新,但我遇到了两个问题:

  1. 如果在上一个模式中列表已部分滚动,则保持不变 在我更改了数据集之后的状态(如果我是一半的话 我也将在新数据集的一半,这不是 我想要的行为,但我没有找到手动滚动列表的方法 任何想法? (setSelected不完全是一个解决方案,因为我不想要任何选择,我想保持触摸模式)
  2. 在我的列表中查看每个项目都有一个从中获取的图像 net,因为它是使用我的网络管理员和我发送 只有当我第一次进入这个屏幕或者是否时,图像请求 滚动状态是idlle,我不想开始加载图像 getView方法,因为如果我扔屏幕它可能会加载很多 不必要的图像但是在调用notifyDatasetChanged()时 不调用scroll侦听器方法。我用这个来解决这个问题 notifyDatasetInvalidated即使我的数据不为空,是否有 更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

关于#1这是我的错误,我没有完全阅读文档,如果我目前处于触摸模式,将不会进行任何选择,因此该工作由setSelectedPosition()完​​成。

关于#2,我仍然不确定notifyDatasetInvalidated是确保调用onScroll方法的解决方案。