He actualmente tengo un ListView que se obtiene de la información de un SimpleAdapter donde se alimenta el texto en TextViews. Sin embargo, ahora quiero añadir un ImageView el control ListView y cargar la imagen desde una URL y aún carga el texto del TextView.

¿Alguien sabe cómo podría hacer esto? Tal vez un SimpleAdapter no es para ser usado en este caso?

Gracias,
Daniel

  • desea diseño diferente para cada fila? O ¿cada fila contiene una imagen y un texto?
  • Sí cada fila contiene una imagen y texto.
InformationsquelleAutor DVassilev | 2013-12-17

4 Comentarios

  1. 3

    Usted tendrá que hacer las siguientes cosas:

    1. crear un xml de diseño para el listview fila que contiene un imageview y un textview.
    2. en la disminución de actividad en el elemento listview.
    3. escribir un adaptador personalizado de la ampliación de la baseadapter para rellenar la vista como desee.
    4. para cargar la imagen desde la url utilizar un cargador de imágenes de la biblioteca como Android AQuery.

    un ejemplo para el adaptador.

    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;
    }

    Importar el AQuery de la biblioteca mediante la descarga de la jarra de la versión (de preferencia) y pegarlo en la carpeta libs.

    Pasar en dos matrices de cadena para la etiqueta y la url de la imagen. El AQuery biblioteca funciona el almacenamiento en caché de imágenes también!

  2. 1

    SimpleAdapter puede manejar sólo texto. Si desea una lista en la que cada elemento contiene una imagen diferente, usted debe crear un adaptador personalizado.

Dejar respuesta

Please enter your comment!
Please enter your name here