更新の問題は以前に議論されているようですが、解決策はどれもうまくいきませんでした。
私がやろうとしていること: FragmentStatePagerAdapter を使用しています。アダプターの各位置には、チェスのような外観を持つ線形レイアウトを持つフラグメントが保持され、各セルは CheckedTextView によって表されます。
そして、クリックをリッスンし、セルの以前の選択を削除して新しい選択を行うリスナー。
Whats working: 各フラグメントはすべてのデータ/デフォルト状態で正しくロードされます (フラグメントがリストにロードされている間に計算されます)
セルをクリックすると、保存されたセル リストからすべての状態が正しく取得され、デバッグ中にコード内の状態の変化を確認できます。同時に、セルを表す CheckedTextView に新しい状態を割り当てます。これは次のように設定されます。
CheckedTextView cellView = (CheckedTextView) GridRow.getChildAt(c);
cellView.setSelected(false);
cellView.setChecked(false);
cellView.setTag(cellsChess.get(i).get(c));
問題: 値が正しく保存および割り当てられていても、ビューを更新できず、ビュー内のセルの値が更新されません。
私が試してみたがうまくいかなかったヒント:
@Override
public int getItemPosition(Object object){
return POSITION_NONE;
}
2. DestroyItem の Overriden メソッドを追加し、getItem でフラグメントを Map に追加します。
FragmentStatePagerAdapter を使用しているため、これは適切ではないため、この pagerAdapter を使用する目的はすべてなくなります。
3. 無効化の呼び出し: これはこのシナリオには不適切です。リアルタイムの更新が必要です。
4. instantiateItem() 内の setTag() メソッド: この状況では適切ではないと思います。
参照スレッド: アクティビティの再開時に FragmentStatePagerAdapter で画像を更新する
ViewPager PagerAdapter がビューを更新しない
notifyDataSetChanged が ListView の更新に失敗する
私は自分の問題をできるだけ明確に述べようとしましたが、さらに明確にする必要がある場合は、尋ねてください.
お急ぎの回答は大歓迎です、
乾杯
****アップデート*****
デフォルトの ViewPager の代わりに、ViewPagerIndicator を使用しています。