2016-10-14 4 views
1

У меня есть список, который может быть обновлен в любое время любым пользователем. Список показан в RecyclerView. Я хочу обновить этот список в режиме реального времени, чтобы пользователь мог получить лучший пользовательский интерфейс, потому что пользователю не нужно выполнять обновление несколько раз. Теперь вопрос в том, как я могу обновить этот список в режиме реального времени?Как обновить RecyclerView в режиме реального времени?

+0

Зависит: Откуда берутся ваши данные? –

+1

вы можете просто позвонить: 'yourAdapter.notifyDataSetChanged();' –

+0

данные поступают из webservice. Сначала мне нужно обновить данные. Как я буду общаться с webservice в режиме реального времени? Hadi Satrio –

ответ

3

С RecyclerView вы можете либо обновить отдельный элемент, диапазон позиций или весь список с адаптером.

Вы должны использовать способ адаптера RecyclerView как adapter#notifyItem*** или adapter#notifyDataSetChanged() (это обновит весь список элементов в 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

Но данные поступают из webservice. Сначала мне нужно обновить данные. Как я буду общаться с webservice в режиме реального времени? –

+0

необходимо проанализировать данные и сохранить их в списке . Таким образом, вы можете поменять список , переданный RecyclerView, с новым списком , который вы получили из webservice. –

0

Вы можете позвонить в тот же комплект кода адаптера recycler. не забудьте позвонить по телефону adapter#notifyDataSetChanged()

0

Вы можете создать метод внутри адаптера, который обновит данные и обновит ur recyclerview.

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

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

Просто позвоните по методу обновления, передав новые данные. Вот и все.

Смежные вопросы