database - ArrayList loses elements after onChildAdded (Android Studio & Firebase) -
public void readuniversity(){ childeventlistener unilistener = new childeventlistener() { @override public void onchildadded(datasnapshot datasnapshot, string s) { //log.d(log_tag, datasnapshot.getkey()); university uni = datasnapshot.getvalue(university.class); universitieslist.add(uni); //adding arraylist of type university //log.d(log_tag, universitieslist.size()+"is size"); arrayofuniversities.add(uni.getname()); //adding name of university list //log.d(log_tag, adapter.getcount() + " items"); //log.d(log_tag, arrayofuniversities.size()+" size"); adapter.notifydatasetchanged(); } @override public void onchildchanged(datasnapshot datasnapshot, string s) { } @override public void onchildremoved(datasnapshot datasnapshot) { } @override public void onchildmoved(datasnapshot datasnapshot, string s) { } @override public void oncancelled(databaseerror databaseerror) { } }; databasereference unireference = database.getreference("note-retrieve/universities"); unireference.addchildeventlistener(unilistener); } the code pretty self explanatory. using arrayofuniversities list populate spinner need adapter. populating spinner names of universities
i storing university objects in universitieslist
the problem have when leave readuniversity() method lose every element in universitieslist , arrayofuniversities though spinner populated these.
its strange list should have objects stored.
also, have adapter @ top of code in oncreate().
try way. hope work .. :)
private arrylist<university > universitylist = new arrylist<>(); private arrylist<string> universitysname = new arrylist<>(); mdatabase.getreference().child("path") .addchildeventlistener(new childeventlistener() { @override public void onchildadded(datasnapshot datasnapshot, string s) { if (datasnapshot != null) { university muniversity = datasnapshot.getvalue(university .class); universitylist.add(muniversity); universitysname.add(muniversity.getname); } } @override public void onchildchanged(datasnapshot datasnapshot, string s) { } @override public void onchildremoved(datasnapshot datasnapshot) { } @override public void onchildmoved(datasnapshot datasnapshot, string s) { } @override public void oncancelled(databaseerror databaseerror) { } });
Comments
Post a Comment