来自URL和TextView的带有ImageView的Android ListView

时间:2013-12-17 14:32:19

标签: android listview android-listview imageview listadapter

我目前有一个ListView,它从SimpleAdapter获取信息,然后将文本输入TextViews。但是,我现在想要将一个ImageView添加到ListView并从URL加载图像并仍然将文本加载到TextView。

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

谢谢, 丹尼尔

4 个答案:

答案 0 :(得分:4)

使用本教程进行操作并修改LazyAdapter类以编辑TextViews。

http://www.technotalkative.com/android-asynchronous-image-loading-in-listview/

答案 1 :(得分:3)

您必须执行以下操作:

  1. 为包含imageview和textview的listview行创建xml布局。
  2. 您的活动中的
  3. 会删除listview元素。
  4. 编写一个自定义适配器,扩展baseadapter以根据需要填充视图。
  5. 用于从url加载图像使用图像加载器库作为Android AQuery。
  6. 适配器的示例。

    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/