我为ListView(myRSSTitleListAdapter)扩展了ArrayAdapter(Item是我的实体类)创建了自己的适配器。我像这样覆盖了getView方法:
public View getView(int position, View converView, ViewGroup parent) {
View view = converView;
if(view == null) {
LayoutInflater li =(LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(layout, null);
}
final Item listItem = items[position];
if(listItem != null) {
ImageView image = (ImageView)view.findViewById(R.id.image);
image.setImageBitmap(ImageTool.loadImage(listItem.getImageURL()));
HTMLUtilities htmlTool = HTMLUtilities.getInstance();
TextView title = (TextView)view.findViewById(R.id.label);
title.setText(htmlTool.escapeHTML(listItem.getTitle()));
}
return view;
}
ImageTool是我写的一个类,loadImage
从传递给它的url返回一个位图。
我在ListActivity中调用myRSSTitleListAdapter,如下所示:
setListAdapter(new myRSSTitleListAdapter(this, R.layout.rss_items, items));
items是Item的数组。
rss_items
是一个带有imageView和textView的线性布局。
对于textView,一切都很好,setText对我返回的视图有影响,但图像没有出现(我确信位图在这里)
谢谢
答案 0 :(得分:0)
我认为问题出在loadImage
,因为您的代码看起来还不错。
应该发生以下两件事之一:
loadImage
有效,则您的行中的文字应该花费很长时间才会显示,因为getView
在loadImage
之前不会返回。loadImage
出现错误或异步工作,则getView
会立即返回,只会设置您的文字,这就是您所描述的行为。将图像异步加载到ImageView
比应该更加复杂。如果你无法让它工作,你可以尝试DroidFu的WebImageView。