I have an android application in which I have a Fragment that contains a CardView. The CardView data is data of events that I have saved in Firebase. The problem I have is that when loading the Fragment there are times that it shows empty because it has not loaded all the data of Firebase and it takes a few seconds to appear the CardView with all the data. For this reason I have thought about introducing a ProgressDialog to show a waiting message until the loading of the data is finished and once it has loaded all this is removed.
I tried to put it into the method but I can not get it to work. I show you my method for loading Firebase data (data loading works perfectly).
private void cargarEventosDisponibles() {
progressCargarEventos.setMessage("Cargando Eventos Disponibles.Por favor espere...");
progressCargarEventos.show();
listEventosDisponibles = new ArrayList<>();
databaseEventos.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
Evento evento = dataSnapshot.getValue(Evento.class);
listEventosDisponibles.add(evento);
adaptador.setListaEventos(listEventosDisponibles);
adaptador.notifyDataSetChanged();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
Evento evento = dataSnapshot.getValue(Evento.class);
listEventosDisponibles.remove(evento);
adaptador.setListaEventos(listEventosDisponibles);
adaptador.notifyDataSetChanged();
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
progressCargarEventos.dismiss();
}
Thank you very much everyone.