我正在使用凌空库来加载来自互联网的图像.我有一个列表视图,一些行使用volley的库“NetworkImageVIEw”加载,其他行由静态资源加载.
看起来有些不对劲,因为我有错误分配图像的行.
我有一个ArrayAdapter,在这里你有我的getVIEw方法:
@OverrIDepublic VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) { VIEwHolder holder; House house = houses.get(position); if (convertVIEw == null) { LayoutInflater inflater = ((Activity)getContext()).getLayoutInflater(); convertVIEw=inflater.inflate(this.layout, parent, false); holder=new VIEwHolder(); holder.image=(NetworkImageVIEw) convertVIEw.findVIEwByID(R.ID.imageVIEw1); holder.name=(TextVIEw) convertVIEw.findVIEwByID(R.ID.housename_Listelement_housesList); holder.rating=(TextVIEw) convertVIEw.findVIEwByID(R.ID.houserating_Listelement_housesList); convertVIEw.setTag(holder); } else { holder = (VIEwHolder) convertVIEw.getTag(); } if(house.getUrl()!=null){ String url=house.getUrl(); holder.image.setimageUrl(url, ((topHousesListVIEwPager)getContext()).mImageLoader); }else{ holder.image.setBackgroundResource(R.drawable.defaulthouse); } holder.name.setText(house.getname()); holder.rating.setText(String.format("%.2f",house.getRate()));return convertVIEw;}
正如你所看到的,如果我的对象有一个url,我只会显示来自互联网的图像,但是我正在那些对象没有url但是图像来自其他行的行…
建议?
谢谢!
解决方法:
正如@Selvin所说:你必须在获得持有人后每次重置图片网址:
} else { holder = (SuggestionVIEwHolder) convertVIEw.getTag(); holder.image.setimageUrl(null, imageLoader); } if(house.getUrl()!=null){ String url=house.getUrl(); holder.image.setimageUrl(url, ((topHousesListVIEwPager)getContext()).mImageLoader); } else { holder.image.setBackgroundResource(R.drawable.defaulthouse); }
这对我有用.
总结以上是内存溢出为你收集整理的android – Listview和排球 – 图像错误分配全部内容,希望文章能够帮你解决android – Listview和排球 – 图像错误分配所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)