【发布时间】:2016-06-26 18:54:32
【问题描述】:
我调用了一个片段,它有一个来自 Firebase 的用于填充列表的基础,我这样称呼它:
private void getClients() {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("client");
myRef.addValueEventListener(valueEventListener);
}
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot){
readClients(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError error) {}
};
private void readClients(DataSnapshot dataSnapshot) {
for(DataSnapshot dss: dataSnapshot.getChildren()){
Client client = dss.getValue(Client.class);
listClients.add(client);
}
}
我尝试从 createView、onStart 和 onResume 调用 getClients,但仅当我最小化此应用程序或更改为其他应用程序时才向我显示包含数据的列表,然后我再次打开该应用程序,列表显示数据。如何调用或显示数据库,立即出现片段?
【问题讨论】:
-
在 for 循环之后在 listview 适配器上调用 adapter.notifyDataSetChanged()
-
谢谢!!!!这就是答案
-
@hello_world 我看到你删除了你给出的答案。但既然这是正确的答案,你能不能再发一次(或取消删除它)。如果您添加一个链接,例如
notifyDataSetChanged()的文档,甚至可能是一个示例 sn-p,那么它将完全可以接受并帮助您获得声誉。
标签: android arraylist firebase fragment firebase-realtime-database