【发布时间】:2016-11-20 01:02:12
【问题描述】:
我正在尝试使用 Hashmap 填充我的网格视图,但我遇到了这个问题:
使用此代码从 firebase 获取数据(书籍信息)并填充我的 gridview 我得到一个空的网格视图:
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);
这个 Log.d 返回计数:1 与我在 firebase 中的完全一样
}
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));
最后一个 Log.d 返回 “css css css 0” 所以我收到一个空的网格视图是正常的,以确保我手动添加了 1 本书,因此新代码变为:
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));
【问题讨论】:
-
手动添加这本书后,我能够填充gridview
标签: android firebase hashmap firebase-realtime-database