似乎之前讨论过刷新问题,但没有一个解决方案对我有用。
我正在尝试做的事情: 我正在使用 FragmentStatePagerAdapter。适配器的每个位置都包含一个片段,该片段具有线性布局,具有象棋一样的外观,每个单元格都由 CheckedTextView 表示。
还有一个侦听器,它应该侦听点击并删除单元格上的先前选择并进行新选择。
什么工作: 每个片段都正确加载了所有数据/默认状态(在片段加载到列表中时计算)
当我单击一个单元格时,保存的单元格列表中的所有状态都被正确获取,并且我可以在调试时更改查看代码中的状态更改。同时,我为表示单元格的 CheckedTextView 分配了一个新状态。设置如下:
CheckedTextView cellView = (CheckedTextView) GridRow.getChildAt(c);
cellView.setSelected(false);
cellView.setChecked(false);
cellView.setTag(cellsChess.get(i).get(c));
问题: 即使正确存储和分配了值,也无法刷新视图,但视图中单元格的值也不会更新。
我尝试过但不起作用的提示: 1. 调用 adapter.notifyDataSetChanged: 只有在我们覆盖了 FragmentStatePagerAdapter 时才能调用:
@Override
public int getItemPosition(Object object){
return POSITION_NONE;
}
2. 为 DestroyItem 添加 Overriden 方法,并将片段添加到 getItem 上的 Map:
这不合适,因为我正在使用 FragmentStatePagerAdapter,因此使用此 pagerAdapter 的全部目的将不复存在。
3.调用invalidate: 这个场景不合适,需要实时刷新。
4. instanceiteItem() 中的 setTag() 方法: 我认为这在这种情况下不合适。
引用的线程: 在恢复活动时刷新 FragmentStatePagerAdapter 上的图像
notifyDataSetChanged 无法更新 ListView
我试图尽可能清楚地说明我的问题,如果有人需要更多说明,请询问。
紧急回复将不胜感激,
干杯
****更新*****
我使用的是 ViewPagerIndicator,而不是默认的 ViewPager。