2016-10-14 11 views
1

私は誰でもいつでも更新できるリストを持っています。このリストは、RecyclerViewで示されています。このリストをリアルタイムで更新して、ユーザーが数回リフレッシュする必要がないため、ユーザーはより良いユーザーエクスペリエンスを得ることができます。今質問は、どうすればこのリストをリアルタイムで更新できますか?RecyclerViewをリアルタイムでどのように更新できますか?

+0

依存:データはどこから来たのですか? –

+1

あなたは単に 'yourAdapter.notifyDataSetChanged();' –

+0

というデータをwebserviceから呼び出すことができます。私はまずデータを更新する必要があります。私はどのようにリアルタイムでwebserviceと通信するのですか? Hadi Satrio –

答えて

3

RecyclerViewを使用すると、の単一項目、項目範囲、またはリスト全体をに更新することができます。

adapter#notifyItem***またはadapter#notifyDataSetChanged()のようなRecyclerViewアダプターのメソッドを使用する必要があります(RecyclerViewのアイテム全体のリストが更新されます)。

class RVAdapter extends ...{ 
    List<?> itemList; 

public void updateList (List<Object> items) { 
     if (items != null && items.size() > 0) { 
      itemList.clear(); 
      itemList.addAll(items); 
      notifyDataSetChanged(); 
     } 
    } 

} 
+0

しかし、データはWebサービスから来ています。私はまずデータを更新する必要があります。私はどのようにリアルタイムでwebserviceと通信するのですか? –

+0

データを解析してリストに格納する必要があります。したがって、リストをRecyclerViewにスワップし、Webサービスから取得した新しいリストを交換することができます。 –

0

同じセットリサイクラーアダプターコードを呼び出すことができます。 adapter#notifyDataSetChanged()

0

データを更新してur recyclerviewをリフレッシュするアダプタ内にmetodを作成することができます。

class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{ 
    List<Data> data; 
    ... 

public void update(ArrayList<Data> datas){ 
    data.clear(); 
    data.addAll(datas); 
    notifyDataSetChanged(); 
} 
    ... 
} 

新しいデータを渡すupdateメソッドを呼び出すだけです。それでおしまい。

関連する問題