在下面显示的代码中,我希望datasnapshot循环能够完成并在调用该方法时将键值保存在ArrayList中。但是,第一次调用该方法将使ArrayList的值保持为null,然后该方法再次自行触发并获取值,就像第一次调用为null而第二次调用(即使我不调用它)值。
public void Drawings_71 () {
FirebaseDatabase.getInstance().getReference().child("Drawings").child("Area 71").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
key = ds.getKey();
list.add(key);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
如果我尝试显示Arraylist的内容,则必须单击两次,因为第一次单击将导致空值。