RecyclerView pagination

0

czesc jak wyswietlic nastepna strone w recyclerview? mam obsluzone przejscie na koniec strony, pobieranie, tylko jak probuje wyswietlac, to recyclerview przechodzi do gory, i wyswietla na nowo dane a nie dodaje
w retroficie: if (fragment != null) {
fragment.loadmore(response.body().results);

                }

public void loadmore(List<News> results) {

refreshLayout.setRefreshing(false);
         adapter =   new adapter(manager);
        adapter.loadMore(results);
        RecycleViewGetAll.setAdapter(adapter);

}

i w adapterze :

public void loadMore(List<Dane> results) {

data.addAll(results);

notifyDataSetChanged();
}

0

bo za każdym razem tworzysz nowy adapter. nie twórz nowego tylko dodaj do starego

0

tak jak tworze recyclerview w metodzie gdzie po raz pierwszy pobieram wszystkie dane a nastepne strony dodaje poprzez adapter.loadMore(results);
adapter.notifyDataSetChanged();

 to dostaje `Attempt to read from field 'java.util.List adapter.posts' on a null object reference `
0
Wielki Szczur123 napisał(a):

tak jak tworze recyclerview w metodzie gdzie po raz pierwszy pobieram wszystkie dane a nastepne strony dodaje poprzez adapter.loadMore(results);
adapter.notifyDataSetChanged();

 to dostaje `Attempt to read from field 'java.util.List adapter.posts' on a null object reference `

dodalem  adapter  = new adapter(manager);
w terminalu widze ze wszystkie posty mi pobiera, ale nic nie dodaje do recycler view
0

No chłopie, jak Ci rzuca NPE że lista jest nullem to pewnie lista jest nullem
w kodzie masz data a NPE krzyczy Ci że adapter.posts jest nullem. To co to jest ten adapter.posts ?

0

w retroficie mam pętle for (Data data : response.body().results) {

                    Log.v(manager.class.getSimpleName(), "load more:" + data);



                }
 wiec widze ze nie jest nullem, bo mi zwraca w terminalu pozycje, a ich nie wyswietla
0

nullem jest ta lista przecie jak wół napisane:
java.util.List adapter.posts

pokaż gdzie ją wykorzystujesz

0

dodalem adapter = new adapter(manager); i juz nie mam nulla, pobiera mi dane ale ich nie dodaje, retrofit wysyla liste do fragmentu:

public void loadmore(List<Data> results) {

        refreshLayout.setRefreshing(false);
        adapter  = new adapter( adsManager);
        adapter.loadMore(results);

            adapter.notifyDataSetChanged();
        } 

i dalej do adaptera:
public void loadMore(List<News> results) {

dataa.addAll(results);

notifyDataSetChanged();
}

0

cieżko dogadać się z tobą. Mówię Ci że jak będziesz za każdym razem robił nowy adapter to nie będziesz miał całej listy.
A jak tego nie robisz to leci Ci nullpointer bo odwolujesz się do czegoś co się nazywa adapter.posts co jest nullem. Sam sobie przeskadzasz ;-)

tyle ode mnie

1 użytkowników online, w tym zalogowanych: 0, gości: 1