2016-07-07 3 views
0

Ну, я прошу прощения за не настолько специфичны и понятным названием (пытался слишком трудно для него), так что я эту функциюуправлять автоматизированным вручную

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(); 

     } 
    }); 
    } 

так что теперь выше функция выборки 10 items по запросу в цикл, и этот цикл выполняется до тех пор, пока все данные не будут восстановлены, я хочу, чтобы этот цикл выполнялся вручную (при нажатии кнопки я хочу загрузить первые 10 элементов, а затем вместо запроса снова хочу, чтобы он работал вручную, следующие 10 пунктов при нажатии кнопки), если кто-нибудь может направлять меня в правильном направлении, тогда это будет так полезно для меня

ответ

1

Удалить обратный отсчет a Н.Д. изменить подпись так:

public void fetchData(int offset) 

В реализации, сохранить код, чтобы установить размер страницы, но также добавить следующее:

dataQuery.setOffset(offset); 

Это будет получать следующую страницу данных из указанного смещение. Нет необходимости вызывать nextPage в ответчике. Результатом, который вы получите, будет блок записей «pageSize» из указанного смещения.

+0

Большое спасибо за отзыв, не могли бы вы объяснить это 'dataQuery.setOffset (offset)'? –

+1

все объекты, загруженные с сервера, организованы последовательно. Первый объект имеет смещение 0, второе имеет смещение 1 и т. Д. Когда вы устанавливаете смещение с помощью dataQuery.setOffset, вы указываете серверу загружать следующую «страницу» объектов из указанного смещения. –

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