notifyDataSetChanged() is not Working inside listeners
I have a child event listener that loads the data from the Fire-base and i am loading the data into an array list. I need to set the adapter when data completely loaded. So i used single value event to identify the child event completion and when i try to set the adapter in the single value event listener, it is not setting the adapter. Please Assist..
Below is my code:
Note: I have set my adapter in the oncreate method.
db.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
bigProgressBar.setVisibility(View.GONE);
Log.d("value",abc.toString());// returns empty!!
sampleAdapter.notifyDataSetChanged();
}
}
db.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(final DataSnapshot dataSnapshot, String s) {
if (dataSnapshot != null) {
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
Events job = dataSnapshot.getValue(Events.class);
abc.add( job);
}
});
}
}