2013-02-13 86 views
0

我已经使用onScrollListener的东西实现了延迟加载。我遇到的一个问题是,当活动开始时图像不显示,这是第一次。滚动列表视图时显示图像。为什么图像不能第一次加载的任何原因。请告诉我。谢谢。Android - 使用onScrollListener在ListView中延迟加载图像的实现

的getView()的代码如下:

public View getView(int position, View convertView, ViewGroup parent) { 
     View vi=convertView; 
     ContentListHolder contentHolder = null; 
     if(convertView==null) 
     { 
      vi = inflater.inflate(layoutItem, null); 

      contentHolder = new ContentListHolder(); 
      contentHolder.textview = (TextView)vi.findViewById(idText); 
      contentHolder.imageView =(ImageView)vi.findViewById(idImage); 

      vi.setTag(contentHolder); 
     } 
     else 
     { 
      contentHolder = (ContentListHolder) convertView.getTag(); 
     }   
     contentHolder.textview.setText("item "+position); 
     contentHolder.imageView.setImageResource(layoutstub); 
     Bitmap bitmap = imageLoader.getBitmapFromCache(data[position]); 
     notifyDataSetChanged(); 
     if(bitmap != null) 
     {   contentHolder.imageView.setImageBitmap(bitmap); 
     }  
     return vi; 
    } 
+1

刚刚发布您的适配器代码,我的意思是getView()的代码。 – 2013-02-13 06:58:53

+0

您不应该在getView() – endian 2013-02-13 08:37:34

+0

中使用notifyDataSetChanged()方法,我删除了notifyDataSetChanged(),但仍然存在相同的问题。 – user1182217 2013-02-13 09:00:43

回答

1

它发生仅仅是因为你还没有为您的ImageView的标签。

尝试:

contentHolder.imageView.setTag(bitmap); 
+0

我在getView()方法中试过这段代码,但它不工作。 – user1182217 2013-02-13 09:42:09

+0

@ user1182217让我知道你为什么要从缓存中获取位图?你不能拿URL吗? – 2013-02-13 09:51:04

+0

请检查这一行......'位图位图= imageLoader.getBitmapFromCache(data [position]);'。这里的数据代表了实际的网址。 – user1182217 2013-02-13 10:13:14