Java 如何使用notifyDataSetChanged()刷新RecyclerView
我正在使用FirebasDatbase和struggleing在数据库下载后刷新recyclerview。 因此,所发生的是-它在下载数据之前加载recyclerview,使其成为0大小的recyclerview。然后我关闭recyclerview并在几秒钟后再次打开,它会从数据中完全加载recyclerviewJava 如何使用notifyDataSetChanged()刷新RecyclerView,java,firebase,firebase-realtime-database,Java,Firebase,Firebase Realtime Database,我正在使用FirebasDatbase和struggleing在数据库下载后刷新recyclerview。 因此,所发生的是-它在下载数据之前加载recyclerview,使其成为0大小的recyclerview。然后我关闭recyclerview并在几秒钟后再次打开,它会从数据中完全加载recyclerview public class ItemActivity extends AppCompatActivity { @Override protected void onCre
public class ItemActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
getIncomingIntent();
}
private void showBranches(final String categoryName) {
databaseReference = FirebaseDatabase.getInstance().getReference().child("Categories");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.child(categoryName).getChildren()) {
mDishName.add(ds.getValue().toString());
}
for(DataSnapshot ds : dataSnapshot.child(categoryName + "Logos").getChildren()){
mImages.add(ds.getValue().toString());
}
for(DataSnapshot ds : dataSnapshot.child(categoryName + "Details").getChildren()) {
mDishDetails.add(ds.getValue().toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public void getIncomingIntent(){
if(getIntent().hasExtra("title")){
String categoryName = getIntent().getStringExtra("title");
showBranches(categoryName);
initRecyclerView();
}
}
public void initRecyclerView(){
adapter = new ItemRCVAdapter(mDishName, mImages, mDishDetails, this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.forceLayout();
}
}
我希望recyclerview在更改时重新加载自己。而不是显示空列表。您是否尝试将
notifyDataSetChanged()
放在onDataChanged
方法中?:D愚蠢的我,我有几个活动,但尝试了错误的活动。当然可以。您是否尝试过将notifyDataSetChanged()
放在onDataChanged
方法中?:D愚蠢的我,我有几个活动,但尝试了错误的活动。这当然有效。