10

Próbuję utworzyć aplikację, która będzie ładować wiadomości z sieci i będzie aktualizować się dynamicznie. Używam RecyclerView i CardView do wyświetlania zawartości. Używam Jsoup do analizowania witryn. Nie sądzę, że mój kod jest potrzebny, ponieważ moje pytanie jest bardziej teoretyczne niż praktyczne. Chcę poznać proces aktualizacji dynamicznej za pomocą notifyDataSetChanged(). W mojej głównej działalności otrzymuję wszystkie nagłówki i dodajemy je do listy. Muszę jednak poczekać, aż wszystkie elementy zostaną załadowane, aby rozpocząć ich wyświetlanie. Byłbym bardzo wdzięczny, gdyby ktoś mógł umieścić przykładowy kod tego, co próbuję zrobić, ponieważ nie mogłem znaleźć wielu informacji na temat łączenia ViewHolder, Adapter i RecyclerView.Aktualizacja adaptera RecyclerView i ViewHolder dynamicznie

+0

czy możesz zamieścić tutaj kod karty ... –

Odpowiedz

24

W swojej RecyclerView adapter, trzeba mieć ArrayList a także jedną metodę addItemsToList(items) dodawania elementów listy do ArrayList. Następnie możesz dynamicznie dodawać elementy listy, dzwoniąc pod numer adapter.addItemsToList(items). Po dodaniu wszystkich elementów listy do urządzenia ArrayList można wywołać adapter.notifyDataSetChanged(), aby wyświetlić listę.

Mam nadzieję, że to jasne!

+0

ta część jest jasna, dziękuję. Ale w jaki sposób odpowiada on ViewHolder? – Vendetta8247

+0

'ViewHolder opisuje widok elementu i metadane dotyczące jego miejsca w widoku RecyclerView'. Twoja dynamiczna lista aktualizacji nie różni się od zwykłego 'ViewHolder' – Xcihnegn

+3

Wymyśliłem, jak go zakończyć. Jedyne, czego nie wspomniałeś, to, że 'adapter.notifyDataSetChanged()' musi być wywołany w wątku UI. I do tego użyłem 'runOnUiThread (new Runnable() {...})' – Vendetta8247

Powiązane problemy