I'm trying to populate my gridview using Hashmap but i'm facing this problem:
using this code to get data (books info) from firebase and populate my gridview I get an empty grid view:
mDatabasee = FirebaseDatabase.getInstance().getReference();
mDatabasee.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.child("Items").getChildren()) {
Item person = postSnapshot.getValue(Item.class);
Log.d("picture",person.getBookImage());
hm.put(postSnapshot.getKey().toString(),person.getBookImage());
String number = String.valueOf(hm.size());
Log.d("count",number);
}
for(Map.Entry m:hm.entrySet()){
System.out.println(m.getKey()+" "+m.getValue());
}
}
public void onCancelled(DatabaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
String number = String.valueOf(hm.size());
Log.d("css css css",number);
gridView.setAdapter(new ImageAdapter(this, hm));
hm.put("-KWyZJM9GhhTe1PzuJMh","http://books.google.com/books/content?id=aJeTCgAAQBAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api");
String number = String.valueOf(hm.size());
Log.d("css css css",number);
gridView.setAdapter(new ImageAdapter(this, hm));
You must notify the adapter of changes.
adapter = new ImageAdapter(this, hm); // Stored as member variable
gridView.setAdapter(adapter);
within the firebase method, adapter.notifyDataSetChanged();