我正在试图弄清楚我的问题的答案,我正在从中获取数据 backendless异步。
CODE:
BackendlessDataQuery dataQuery = new BackendlessDataQuery();
dataQuery.setPageSize(10); // here am setting the page size (10 items to load at a single fetch )
dataQuery.setWhereClause(whereClause);
Backendless.Data.of(Note.class).find(dataQuery, new AsyncCallback<BackendlessCollection<Note>>() {
@Override
public void handleResponse(BackendlessCollection<Note> notes) {
//here i got the first 10 objects from Note Table
}
@Override
public void handleFault(BackendlessFault fault) {
swipeToReload.setRefreshing(false);
Toast.makeText(getContext(), "" + fault.getMessage(), Toast.LENGTH_LONG).show();
}
});
所以现在我想知道如何以块的形式加载数据,Button
作为RecylerView
的页脚(这里填充我提取的数据)但是我不知道怎么回事这样做,我在脑海里想到的是“你必须通过告诉服务器获取数据。所需数据的索引,如第一次请求,在下次请求时从1到10获取数据,从11获取数据20等等。“
但是如果我们从21-30请求数据(第3个请求)并创建了一些新数据(在第一个索引中)那么我们将如何加载这些数据呢?我们是否必须从开始加载所有内容?请纠正我。
答案 0 :(得分:0)
让它运转起来:
public class MyForm {
final DataHandler dataHandler;
BackendlessCollection<Note> data;
MyForm() {
dataHandler = new DataHandler(this);
}
void setData(BackendlessCollection<Note> data) {
this.data = data;
//render new set of data
}
//'Fetch Data' Button click handler
public void fetchData() {
BackendlessDataQuery dataQuery = new BackendlessDataQuery();
dataQuery.setPageSize(10);
Backendless.Data.of(Note.class).find(dataQuery, dataHandler);
}
//'Next Page' Button click handler
public void fetchNext() {
data.nextPage(dataHandler);
}
void setError(BackendlessFault fault) {
//swipeToReload.setRefreshing(false);
//Toast.makeText(getContext(), "" + fault.getMessage(), Toast.LENGTH_LONG).show();
}
class DataHandler implements AsyncCallback<BackendlessCollection<Note>> {
final MyForm form;
DataHandler(MyForm form) {
this.form = form;
}
public void handleResponse(BackendlessCollection<Note> notes) {
form.setData(notes);
}
public void handleFault(BackendlessFault fault) {
form.setError(fault);
}
}
}