恢复活动时更新特定的ListView项

时间:2014-05-08 17:25:40

标签: android listview android-listview

我有3个包含自定义适配器列表视图的活动,第一个选择的项目将用户驱动到第二个,依此类推......

在这些列表视图中,某些项目会突出显示为" new itens" (每次调用适配器的getView时,我都会在数据库中检查当前项是否应该突出显示)。一旦用户到达第3个列表视图,我将这些项目标记为"选中",并希望将此更改传播回其他列表视图...

这意味着,当用户回来时,从堆栈中提取第二个和第一个列表视图,我希望不再突出显示已查看的项目。

我已经尝试this answer on SO,但没有成功。从onResume()执行notifyDataSetChanged()时,我的listview根本没有显示出来。我不想使用startActivityforResult()......

这是我在onResume()上刷新listview的代码:

@Override
public void onResume(){
    super.onResume();
    //I have basically the same code at onCreate()
    adapter = new ListingsAdapter(getApplicationContext(), this);
    list.setAdapter(adapter);
    adapter.notifyDataSetChanged();
}

这里another answer听起来很有希望,但我不确定如何从适配器中检索特定的视图...我想用adapter.getView检查所有可见的项目( ),但它要求转换ViewView和父ViewGroup,我无法得到

提前感谢您对此

的任何提示

1 个答案:

答案 0 :(得分:1)

  1. 你为什么不想使用startActivityforResult()
  2. 每次onResume()都不需要创建新的适配器。您只需要更改基础数据(设置被访问项的已检查标志),然后调用adapter.notifyDataSetChanged()。这将为所有可见列表元素触发适配器getView()方法。