gpt4 book ai didi

android - FirebaseRecyclerAdapter 不自动更新数据

转载 作者:搜寻专家 更新时间:2023-11-01 07:51:01 25 4
gpt4 key购买 nike

我正在使用 FirebaseAndroid-UI 库附带的 FirebaseRecyclerAdapter,我假设当 Firebase 上的数据发生变化时,它会自动刷新并更新 RecyclerView。

我的代码很简单:

Firebase firebasePicturesRef = new Firebase(FIREBASE_URL);

mAdapter = new FirebaseRecyclerAdapter<Image, ImageViewHolder>(
Image.class, R.layout.pictures_grid_item,
ImageViewHolder.class, firebasePicturesRef) {

@Override
protected void populateViewHolder(ImageViewHolder viewHolder, Image model, int position) {
super.populateViewHolder(viewHolder, model, position);
Glide.with(getActivity()).load(model.getThumbnailUrl()).into(viewHolder.mImageView);
}
};

我还尝试在 onDataChange 方法中使用 notifyDatasetChanged 手动刷新适配器:

firebasePicturesRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (mAdapter != null)
mAdapter.notifyDataSetChanged();
}

@Override
public void onCancelled(FirebaseError firebaseError) {

}
});

我做错了什么吗?修复方法是什么?

最佳答案

我发现了问题,我在 fragment 的 onStop() 中调用了 mAdapter.cleanup();。删除它可以解决问题。

与其在 onStop(); 中进行清理,不如在 onDestroy() 中调用

正如弗兰克所建议的:

通常,您应该在创建适配器的“相反”方法中调用 cleanup()。所以 onCreate()<->onDestroy(), onStart()<->onStop(), onPause()<->onResume()

关于android - FirebaseRecyclerAdapter 不自动更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35046713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com