2013-12-17 69 views
1

我目前有一个ListView从SimpleAdapter获取信息,它将文本馈送到TextViews中。不过,我现在想要将一个ImageView添加到ListView并从URL加载图像,并仍然将文本加载到TextView。Android的ListView与ImageView的URL和TextView

有谁知道我该怎么做?也许在这种情况下不使用SimpleAdapter?

感谢, 丹尼尔

+0

你想为每一行布置不同的布局吗?或者每行都包含图像和文本? – Nfear

+0

@Nfear是的每一行都包含一个图像和文字。 – DVassilev

回答

1

SimpleAdapter只能处理文字。如果您想要列出每个项目包含不同图像的列表,您必须创建一个自定义适配器。

3

你将不得不做以下事情:

  1. 创建包含的ImageView和一个TextView ListView的行中的XML布局。
  2. 在您的活动中删除listview元素。
  3. 编写一个自定义适配器,扩展baseadapter以根据需要填充视图。
  4. 用于从url加载图像使用Android AQuery的图像加载器库。

适配器的一个例子。

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文件夹中。

传入标签和图像url的两个字符串数组。 AQuery库也会缓存图片!

相关问题