Nun, ich entschuldige mich für nicht so spezifisch und klaren Titel (versucht zu hart für sie), so habe ich diese Funktionsteuern, um eine automatisierte Funktion manuell
public void fetchData(){
dataQuery.setPageSize(10); // fetch 10 items per request
final boolean[] firstResponse = {true};
final CountDownLatch latch = new CountDownLatch(1);
// a callback of fetching data from server
Backendless.Data.of(Note.class).find(dataQuery, new AsyncCallback<BackendlessCollection<Note>>() {
@Override
public void handleResponse(BackendlessCollection<Note> notes) { // here we have the response of request
/// loop for requesting for items until all of them is fetched//////
if(firstResponse[0])
{
firstResponse[0] =false;
}
int size = notes.getCurrentPage().size();
if(size > 0)
notes.nextPage(this);
else
latch.countDown();
//////////////////////////////////
/// do whatever I want with the fetched data
}
@Override
public void handleFault(BackendlessFault fault) {// here we have the error of request
swipeToReload.setRefreshing(false);
Toast.makeText(getContext(), "" + fault.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
so jetzt die obige Funktion 10 items
pro Anfrage in ein abruft Schleife und diese Schleife läuft, bis alle Daten abgerufen werden, was ich möchte, ist diese Schleife manuell ausgeführt werden (auf einen Button klicken Ich möchte die ersten 10 Elemente laden, dann anstatt es erneut zu verlangen, ich will es manuell arbeiten, holen Sie die Die nächsten 10 Elemente auf Knopf klicken) wenn jemand mich in die richtige Richtung führen kann, dann wird es so hilfreich für mich
vielen Dank für die Antwort, können Sie bitte diese 'dataQuery.setOffset (offset)' erklären? –
Alle vom Server geladenen Objekte sind sequentiell organisiert. Das erste Objekt hat den Offset 0, der zweite hat den Offset 1 und so weiter. Wenn Sie offset mit dataQuery.setOffset setzen, weisen Sie den Server an, die nächste "Seite" von Objekten aus dem angegebenen Offset zu laden. –