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

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -