в коде, показанном ниже, я ожидаю, что цикл 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, я должен щелкнуть дважды, так как первый щелчок приведет к нулевым значениям.