android - How to be notified when FirebaseListAdapter finishes? -


i'm using firebaselistadapter , need display progressdialog, don't know how know when finishes loading.

    public class tabfragment1 extends listfragment {          @override         public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {             view rootview = inflater.inflate(r.layout.tab_fragment_1, container, false);             listview eventosview = (listview) rootview.findviewbyid(android.r.id.list);             firebase ref = new firebase(//myappurl);             firebase usersref = new firebase(//myappurl/eventos/users);             singleton singletonuser = singleton.getinstance();             setuser(singletonuser);      firebase ref = new firebase(//myappurl/eventos);                     firebaselistadapter<evento> madapter = new firebaselistadapter<evento>(getactivity(), evento.class, r.layout.event_row, ref) {                         @override                         protected void populateview(view view, evento evento) {                             ((textview)view.findviewbyid(r.id.eventtitle)).settext(evento.getnome());                             ((textview)view.findviewbyid(r.id.eventplace)).settext(evento.getlocal());                         }                     };                     setlistadapter(madapter);                     return madapter;               return rootview;         }  private void setuser(singleton singletonuser){         singletonuser.gettoken();         singletonuser.setuuid();         singletonuser.getuuid();     }   } 

when can place progressdialog.dismiss()?

firebase built on premise of synchronizing data. reason there never moment when done synchronizing.

the initial set of data location downloaded in 1 go , results in call onchildadded() each child, followed single ondatachanged(). if want hide progress bar when initial data has loaded, can register valueeventlistener single event:

ref.addlistenerforsinglevalueevent(new valueeventlistener() {     @override     public void ondatachange(datasnapshot datasnapshot) {         // initial data has been loaded, hide progress bar     }      @override     public void oncancelled(databaseerror firebaseerror) {      } }); 

in above snippet, children have been added listview already. depending on use-case, may right time hide progress bar or may later wanted.

if want know when first data has been rendered, can register observer adapter:

adapter.registerdatasetobserver(new datasetobserver() {     @override     public void onchanged() {         super.onchanged();         // first time here, hide progress bar     }      @override     public void oninvalidated() {         super.oninvalidated();     } }); 

you use approach hide progress bar first data has arrived firebase.


Comments