RecyclerView不会在首次启动时从Firebase加载数据 [英] RecyclerView does not load data from Firebase on first launch
本文介绍了RecyclerView不会在首次启动时从Firebase加载数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从 Firebase
获取数据,但是 RecyclerView
并未在首次启动时显示该数据。它显示数据,当我再次打开活动。
在我的主要活动 -
databaseReference = FirebaseDatabase.getInstance()。getReference(data)。child(childdata);
recyclerView =(RecyclerView)findViewById(R.id.recyclerviews);
recyclerView.setHasFixedSize(true);
recyclerAdapter = new DisplayRecyclerAdapter(list,this);
recyclerView.setLayoutManager(新的LinearLayoutManager(this));
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter.notifyDataSetChanged();
loadRecyclerData();
$ b private void loadRecyclerData(){
databaseReference.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot){
(DataSnapshot postSnapshot:dataSnapshot.getChildren()){
String da = postSnapshot.getValue()。toString();
list.add(da);
}
});
解决方案
$ c $> onDataChange 导致您的列表正在更新那里
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot){
for(DataSnapshot postSnapshot:dataSnapshot.getChildren()){
String da = postSnapshot.getValue()。toString( );
list.add(da);
}
recyclerAdapter.notifyDataSetChanged();
}
)};
I am getting data from Firebase
but RecyclerView
is not showing that data on first launch. It displays the data when I open the activity again.
In my main activity-
databaseReference = FirebaseDatabase.getInstance().getReference("data").child("childdata");
recyclerView = (RecyclerView)findViewById(R.id.recyclerviews);
recyclerView.setHasFixedSize(true);
recyclerAdapter = new DisplayRecyclerAdapter(list,this);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(recyclerAdapter );
recyclerAdapter.notifyDataSetChanged();
loadRecyclerData();
}
private void loadRecyclerData() {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
String da = postSnapshot.getValue().toString();
list.add(da);
}
});
}
解决方案
Notify adapter inside onDataChange
cause your list is getting updated there
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot:dataSnapshot.getChildren()) {
String da = postSnapshot.getValue().toString();
list.add(da);
}
recyclerAdapter.notifyDataSetChanged();
}
)};
这篇关于RecyclerView不会在首次启动时从Firebase加载数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文