2017-11-28 11 views
1

私は主な断片を持っていますが、主な断片の中にはViewPagerがあります。このビューページャは、各ページャ内部リサイクラーViewadapterのリサイクラー見ると実装があり、2つの断片をロード:ViewPagerはrecyclerViewAdapterとはもう一度呼び出されません

public void onResume() { 
    super.onResume(); 
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
    recyclerAdapter = new UsersRecyclerAdapter(getContext()); 
    suserList = Collections.emptyList(); 
    recyclerView.setAdapter(recyclerAdapter); 
    recyclerAdapter.setItems(paginator.generatePage(currentPage)); 

このRecyclerViewは、サービスからのもののリストを示します。私の質問は初めてsetItemsメソッドが動作し、リストがRecyclerViewに表示されますが、paginator.generatePage(currentPage)が新しいデータリストを生成すると、私のRecyclerViewは新しいデータを表示しません。

これは私のリサイクラーViewadapterの方法であって、

public void setItems(List<Suser> items) { 
    if (items == null) 
     throw new IllegalArgumentException("Cannot set `null` item to the Recycler adapter"); 
    susers.clear(); 
    susers.addAll(items); 
    notifyDataSetChanged(); 
} 

はViewPagerの内側にロードされた私のフラグメントを再び更新しないと、このrecyclerAdapter.setItems(paginator.generatePage(currentPage));が再び呼び出されていないようです。 あなたの提案は何ですか?

**************私は、私が作成したActivity.thenにメインフラグメントを変更した

編集*************私のアクティビティへのコールバックと最後に、このコールバックをフラグメント化して実装しました。notifyDataSetChangedを呼び出しましたが、Recycler Viewのリストは変更されていませんか?

@Override 
public void onLoad() { 
    recyclerAdapter.notifyDataSetChanged(); 
} 

リサイクルビューは、最初はまだ1ページを表しています。 OnStartメソッドのオーバーライドメソッドとアダプタのコードで へ

+0

あなたはONSTARTオーバーライドであなたの方法を使用している場合、それは私がいずれかを使用していないHemalHerath.no @リフレッシュ – HemalHerath

+0

を維持します方法。どうすれば使える? –

+0

私はなぜあなたはonResumeメソッド – HemalHerath

答えて

0

変更OnResumeに、次のように変更してみてください。..

public void update(ArrayList<Person> data) { 
mData.clear(); 
mData.addAll(data) 
notifyDataSetChanged(); 
} 
+0

私はこのメソッドを別の名前: 'setItems'で持っています。 \t @HemalHerath –

+0

susers.update(items);この1つを試してください。 – HemalHerath

+0

何も変更されていません。これは私の断片http://codepad.org/CpptIokzアダプターhttp://codepad.org/tvIPxz21 \t @HemalHerath –

関連する問題