1

問題はほぼthis postと同じですが、そこの解決策で問題が解決されませんでした。ViewPager PageAdapterが更新されていません。

FragmentPagerAdapterListとし、以下に示すようにFragmentを使用します。

public class ViewPageAdapter extends FragmentPagerAdapter { 
    private List<Fragment> fragments; 

    public ViewPagerAdapter(FragmentManager fm, List<Fragment> fragments) { 
     super(fm); 
     this.fragments = fragments; 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return fragments.get(position); 
    } 

    @Override 
    public int getCount() { 
     return fragments.size(); 
    } 

    ... 
} 

そして、私のFragmentは、このようなonCreateViewメソッドをオーバーライドします。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) { 
    return inflater.inflate(theLayoutResourceId, container, false); 
} 

this post方法を使用する場合(POSITION_NONEを返すようにint getItemPosition(Object object)をオーバーライドする)、私はnotifyDataSetChanged()を呼び出した後 java.util.ConcurrentModificationExceptionを取得します。

メソッドの呼び出しフローは、次のとおりです。

  1. ViewPagerページインデックス1で、ダイアログを閉じた後に
  2. onAuthSucceed)(FacebookのAndroidの例ではLoginButtonとしてちょうど同じ)Buttonは、ViewPagerページインデックスを削除]をクリック経由Dialogを開いて1とし、私は前Fragmentを除去するための他の多くの方法を試してみたnotifyDataSetChanged

を使用してページインデックス1

  • 力を更新する別のページを追加アダプタにFragmentを追加しますが、ページは新しいコンテンツに更新されません。

    私はちょうど...ページが空白にする一つの方法を見つけ

    viewpager.removeViewAt(1); 
    viewpagerAdapter.removeItem(1); 
    viewpagerAdapter.addItem(1, new Fragment(...)); 
    

    どちらの更新に問題があるか、java.util.ConcurrentModificationExceptionを解決することは素晴らしいことです。あなたの助けてくれてありがとう:

  • +1

    こんにちは。その問題の解決策を見つけることができますか?私はまったく同じ問題を抱えていますが、私のために何か解決策を見つけることができません:(何か働いていれば助けてください!ありがとう:) –

    +0

    いいえ、問題は解決しませんでした。 –

    答えて

    2

    このポストは古くからありますが、誰かがこれに遭遇する場合に備えて。私は同様の投稿hereの回答を見つけました。あなたが正しい軌道に乗っているように見えますが、あなたの記事で示唆したようにFragmentPagerAdapterをFragmentStatePagerAdapterに変更し、getItemPosition(Object)を上書きする必要があります。

    あなたに最高の運があります。

    +0

    ありがとうございます。私はあなたの方法を試して、それは働いたが、それはまだ時々奇妙です。私はそれが現在の表示可能なページを削除しようとしていると思います。その動作は現在のページの位置に依存します。私はそれを削除する前に画面から現在のページを切り替えることによって解決するかもしれないと思うが、私はそれを試していない。 –

    関連する問題