sách gpt4 ăn đã đi

android - Firebase android分页

In lại Tác giả: IT Lão Cao 更新时间:2023-10-28 23:31:12 24 4
mua khóa gpt4 giày nike

我正在构建一个应用程序,它将显示存储在 firebase 上的视频。需要对视频列表进行分页,一次获取最近的 20 个视频。

nhập mô tả hình ảnh ở đây

这是我认为可行的代码

  private void getVideos() {

Query videosQuery = FirebaseUtil.getVideosRef();
videosQuery.startAt(0);
videosQuery.endAt(1);

ChildEventListener videosChildEventListener = new ChildEventListener() {
@Ghi đè
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String date = dataSnapshot.getKey();
String temp = date;
}

@Ghi đè
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Ghi đè
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Ghi đè
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Ghi đè
public void onCancelled(DatabaseError databaseError) {

Log.d(tag, "database error");
}
};


ValueEventListener videoValueEventListener = new ValueEventListener() {
@Ghi đè
public void onDataChange(DataSnapshot dataSnapshot) {
String date = dataSnapshot.getKey();
String temp = date;

long count = dataSnapshot.getChildrenCount();
String value = dataSnapshot.getValue().toString();
temp = value;
}

@Ghi đè
public void onCancelled(DatabaseError databaseError) {
Log.d(tag, "database error");
}
};
// videosQuery.addChildEventListener(videosChildEventListener);
videosQuery.addValueEventListener(videoValueEventListener);

}

但上面的代码会检索整个视频列表,而不是有限的视频。如何实现分页。

câu trả lời hay nhất

下面是我用于分页的代码,它首先显示最新的节点。

      public void getImages() {
Query imagesQuery = FirebaseDatabase.getInstance().getReference().child("englishDps").child(mChildName).orderByKey().limitToLast(21);

ChildEventListener childEventListener = new ChildEventListener() {
@Ghi đè
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Image image = dataSnapshot.getValue(Image.class);
image.setNodeKey(dataSnapshot.getKey());

mTempImages.add(image);
if (mTempImages.size() == 21) {
mLastKey = mTempImages.get(0).getNodeKey();
Collections.reverse(mTempImages);
mTempImages.remove(mTempImages.size() - 1);
mImages.addAll(mTempImages);
setAdapter();
}
}

@Ghi đè
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Ghi đè
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Ghi đè
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Ghi đè
public void onCancelled(DatabaseError databaseError) {
if (isAdded()) {
Toast.makeText(getActivity(), "Problem loading more images...", Toast.LENGTH_LONG).show();
}
}
};

imagesQuery.addChildEventListener(childEventListener);
}


@Ghi đè
public void getMoreImages() {
if (!mGettingMoreImages) {
mGettingMoreImages = true;
Query imagesQuery = FirebaseDatabase.getInstance().getReference("englishDps").child(mChildName).orderByKey().endAt(mLastKey).limitToLast(21);

ChildEventListener childEventListener = new ChildEventListener() {
@Ghi đè
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Image image = dataSnapshot.getValue(Image.class);
image.setNodeKey(dataSnapshot.getKey());
mMoreImages.add(image);
if (mMoreImages.size() == 21) {
mLastKey = mMoreImages.get(0).getNodeKey();
Collections.reverse(mMoreImages);
mMoreImages.remove(mMoreImages.size() - 1);
mImages.addAll(mMoreImages);
mMoreImages.clear();
mGettingMoreImages = false;
mImagesAdapter.notifyDataSetChanged();
trở lại;
}

if (mLastKey.equalsIgnoreCase(image.getNodeKey())) {
Collections.reverse(mMoreImages);
mImages.addAll(mMoreImages);
mMoreImages.clear();
mGettingMoreImages = false;
mImagesAdapter.onNoMoreImages();
;
mImagesAdapter.notifyDataSetChanged();
}
}

@Ghi đè
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Ghi đè
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Ghi đè
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Ghi đè
public void onCancelled(DatabaseError databaseError) {
if (isAdded()) {
Toast.makeText(getActivity(), "Problem loading more images...", Toast.LENGTH_LONG).show();
}
}
};

imagesQuery.addChildEventListener(childEventListener);
}
}

关于android - Firebase android分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37711220/

24 4 0
Cựu chiến binh CNTT
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress