我目前有一个ListView,它从SimpleAdapter获取信息,然后将文本输入TextViews。但是,我现在想要将一个ImageView添加到ListView并从URL加载图像并仍然将文本加载到TextView。
有谁知道我怎么做到这一点?也许在这种情况下不使用SimpleAdapter?
谢谢, 丹尼尔
答案 0 :(得分:4)
使用本教程进行操作并修改LazyAdapter类以编辑TextViews。
http://www.technotalkative.com/android-asynchronous-image-loading-in-listview/
答案 1 :(得分:3)
您必须执行以下操作:
适配器的示例。
public class Onadapter extends BaseAdapter {
String[] label;
String[] image;
public Onadapter(Context context,String[] label,String[] image)
{
this.context=context;
this.image = image;
this.label = label;
}
private class ViewHolder{
ImageView img;
TextView label;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_layout, null);
holder = new ViewHolder();
holder.label=(TextView) convertView.findViewById(R.id.textview);
holder.img = (ImageView) convertView.findViewById(R.id.imageview);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
AQuery aq = new AQuery(convertView);
aq.id(holder.label).text(label[position]);
aq.id(holder.img).image(image[position], true, true, 0, 0, null, AQuery.FADE_IN_NETWORK, 1.0f);
return convertView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return image1.length;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
通过下载jar版本(首选)导入AQuery库并将其粘贴到libs文件夹中。
为标签和图片网址传入两个字符串数组。 AQuery库也可以缓存图像!
答案 2 :(得分:1)
SimpleAdapter只能处理文本。如果您想要一个列表,其中每个项目包含不同的图像,您必须创建一个自定义适配器。
答案 3 :(得分:1)
您必须使用新布局扩展BaseAdapter,您可以根据需要显示ImageView和TextView。互联网上有很多例子。例如:
http://www.technotalkative.com/tag/android-listview-with-two-textview-and-imageview/