2016-11-20 69 views
0

我试图使用HashMap来填充我的GridView但我面临这样的问题:在使用此代码从火力点数据(书籍信息)和填充我的GridView我得到一个填充的GridView随着火力地堡使用的Hashmap

空网格视图:

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酷似我在火力

} 
      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)); 
+0

手动添加这本书我能填充后的GridView –

回答

1

您必须更改通知适配器。

adapter = new ImageAdapter(this, hm); // Stored as member variable 
gridView.setAdapter(adapter); 

的火力方法中,adapter.notifyDataSetChanged();