Ich habe versucht, verschiedene andere Fragen um Hilfe zu suchen, aber ich kann nicht in der Lage sein, eine Lösung zu finden.Paginierung mit Parse und RecyclerView
OnScrollListener die ich benutze: https://gist.github.com/ssinss/e06f12ef66c51252563e
rvHome.addOnScrollListener(new MainRecyclerViewScrollListener(linearLayoutManager) { @Override public void onLoadMore(int page) { fetchPosts(page); } });
public void fetchOfflinePosts() {
offlineListPosts = db.getAllPosts();
for (Post post : offlineListPosts) {
listPosts.add(post);
}
postAdapter.notifyDataSetChanged();
}
public void loadPosts() {
if (ConnectivityHelper.isConnected(getContext())) {
db.deleteAllPosts();
listPosts.clear();
fetchPosts(0);
} else {
swipeRefreshLayout.setRefreshing(false);
}
}
public void fetchPosts(int skip) {
ParseQuery<ParseObject> findPostsRequest = new ParseQuery<>("Post");
findPostsRequest.setSkip(skip);
findPostsRequest.orderByDescending("createdAt");
findPostsRequest.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> posts, ParseException e) {
if (e == null) {
for (ParseObject _post : posts) {
final Post post = new Post();
String objectId = _post.getObjectId();
String username;
String imageUrl;
if (_post.getString("username") != null) {
username = _post.getString("username");
} else {
username = "";
}
ParseQuery<ParseUser> findProfilePicQuery = ParseUser.getQuery();
findProfilePicQuery.whereEqualTo("username", username);
findProfilePicQuery.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> users, ParseException e) {
if (e == null) {
for (ParseUser user : users) {
if (user.getParseFile("profilePic") != null) {
post.setProfilePicUrl(user.getParseFile("profilePic").getUrl());
} else {
post.setProfilePicUrl("");
}
}
}
}
});
if (_post.getParseFile("photo") != null) {
imageUrl = _post.getParseFile("photo").getUrl();
} else {
imageUrl = "";
}
post.setObjectId(objectId);
post.setUsername(username);
post.setImageUrl(imageUrl);
db.addPost(post);
}
fetchOfflinePosts();
swipeRefreshLayout.setRefreshing(false);
}
}
});
}
Durch den Code unter Verwendung der oben ich die RecyclerView bekommen können mehrere Objekte zu laden, sobald der letzte Punkt erreicht ist, aber die Pfosten geholt sind die gleichen wie die, die ich bin schon angekommen. Ich weiß, ich bekomme etwas wirklich einfaches falsch. Jede Hilfe würde sehr geschätzt werden.
Dank. Ich werde es jetzt ausprobieren. –
Wenn Sie Probleme bei der Implementierung haben, können wir diskutieren. – savepopulation