2011-10-17 134 views
0

如何在网格视图中动态添加网格项目?目前,我有一个包含我的图像的适配器。我想从URL中获取图像并将其动态添加到我的网格视图中。我使用下面的代码从URL下载图像动态添加图像到gridview

   try { 
      URL myFileUrl =null; 
     myFileUrl= new URL(imageUrl); 

      HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection(); 
    conn.setDoInput(true); 
    conn.connect(); 
    InputStream is = conn.getInputStream(); 

    bmImg = BitmapFactory.decodeStream(is); 
    //images[i].setImageBitmap(bmImg); 
     }  catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 

而下面万亩基地图像adpater类

 public class ImageAdapter extends BaseAdapter{ 
    Context mContext; 
    public static final int ACTIVITY_CREATE = 10; 
    public ImageAdapter(Context c){ 
     mContext = c; 
    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 9; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     View v; 
     if(convertView==null){ 
      LayoutInflater li = getLayoutInflater(); 
      v = li.inflate(R.layout.icon, null); 
      TextView tv = (TextView)v.findViewById(R.id.icon_text); 
      tv.setText("Profile "+position); 
      ImageView iv = (ImageView)v.findViewById(R.id.icon_image); 
      iv.setImageResource(R.drawable.ondamoveicon); 

     } 
     else 
     { 
      v = convertView; 
     } 
     return v; 
    } 
    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return null; 
    } 
    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 
} 

现在我的问题是,我想显示的下载通过URL图像在适配器中。我们如何将这些图像传递给适配器类。

现在我得到的所有地方的最后一个图像在GridView

谁能帮我在这个 感谢

+0

我相信你试图显示图像(来自web服务器)到GridView,是这种情况? –

+0

你是否为列表中的每个项目传递相同的图像? –

+0

是的,正是你所说的 – ekjyot

回答

3
  1. 提高您的适配器类的计数。

  2. 你必须使用一些资源数组,它将存储图像。在下载新图像后,将计数增加1,并用新图像更新资源阵列。

  3. call adapter.notifyDataSetChanged()。

这将刷新gridView。

+0

我将不得不将图像存储在适配器类? – ekjyot

+0

是,或者可能是全局的,以便适配器类在更改数据时实现。 –

0

你可以尝试LazyList,在主XML中,你可以将listview转换为gridview。