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
Post a Comment