0
FireBaseデータベースのすべての書籍を表示できますが、10冊の書籍を10ページ分読み込むと、画面に何も表示されず、Logcutにエラーがありません。Android Firebaseを使用したページ設定
私のコードでどこが間違っているのか理解してください。あなたのdate_creation
フィールドに間違ったstartAt
値を使用
private boolean isLoading;
int mPageEndOffset = 0;
int mPageLimit = 10;
//OnCreate
listAdapter = new FeedListAdapter(getActivity(), feedItems);
listView.setAdapter(listAdapter);
listView.setOnItemClickListener(myClickListener);
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (mPageEndOffset != 0) {
int lastInScreen = firstVisibleItem + visibleItemCount;
if ((lastInScreen == totalItemCount) && !(isLoading)) {
loadData();
}
}
}
});
//Load More Data from FireBase Database
private void loadData() {
ref.orderByChild("date_creation").limitToLast(mPageLimit).startAt(mPageEndOffset).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
isLoading = true;
for (DataSnapshot dataSnap : dataSnapshot.getChildren()) {
Book valueBook = dataSnap.getValue(Book.class);
keyId = dataSnap.getKey();
String titreLivreToDisplay = valueBook.getNom_livre();
String descLivreToDisplay = valueBook.getDesc_livre();
String prixLivreToDisplay = valueBook.getPrix_livre();
String timeToDisplay = valueBook.getDate_creation();
String filePathToDiplay = valueBook.getChemin_image();
String villeToDisplay = valueBook.getVille_livre();
String typeAnnToDisplat = valueBook.getType_annonce_selected();
String catAnnToDisplay = valueBook.getCat_selected();
}
valueBook.setNom_livre(titreLivreToDisplay);
valueBook.setDesc_livre(descLivreToDisplay);
valueBook.setPrix_livre(prixLivreToDisplay);
valueBook.setDate_creation(timeToDisplay);
valueBook.setChemin_image(filePathToDiplay);
valueBook.setVille_livre(villeToDisplay);
valueBook.setType_annonce_selected(typeAnnToDisplat);
valueBook.setCat_selected(catAnnToDisplay);
valueBook.setKeyIdNode(keyId);
feedItems.add(valueBook);
}
if (feedItems != null && feedItems.size() != 0) {
Collections.reverse(feedItems);
listAdapter.notifyDataSetChanged();
mPageEndOffset += mPageLimit;
isLoading = false;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
String message = "Server error. Refresh page";
Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show();
}
});
}
問題の解決方法や説明がありますか? –