我有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,我无法得到
提前感谢您对此
的任何提示答案 0 :(得分:1)
startActivityforResult()
?onResume()
都不需要创建新的适配器。您只需要更改基础数据(设置被访问项的已检查标志),然后调用adapter.notifyDataSetChanged()
。这将为所有可见列表元素触发适配器getView()
方法。