as imágenes se barajaron al desplazar un ListView con un ViewHolder

Mi problema está conectado cuando el usuario desplaza el ListView. Miré a mi alrededor y vi numerosos ejemplos de 'imagen perezosa de viewview', también vi el video de Google IO que habla de 'buenas prácticas' para que esto funcione. Pero mi problema continúa cuando el usuario sube y baja ListView.

Lo que sucede es que al desplazarse por la lista, las imágenes que se cargaron en cada elemento se barajan y el avatar de cada elemento que va al siguiente elemento finaliza. No sé si estoy siendo claro, pero lo mostraré con la imagen.

Cuando comienzas, los elementos que no tienen imagen quedan con la imagen estándar.

Imagen 1:http: //boxandroid.com/app/weguide/itsok.pn Antes de desplazarse por el usuario ListView:http: //boxandroid.com/app/weguide/nook.pn

enga en cuenta que las imágenes se barajaron entre otros elementos.

en mi adaptador:

public View getView(int position, View convertView, ViewGroup parent){

    ViewHolder viewHolder = new ViewHolder();
    if(convertView == null){
        convertView = _inflate.inflate(R.layout.layout_list, null);
        viewHolder.text = (TextView) convertView.findViewById(R.id.title);
        viewHolder.owner = (TextView) convertView.findViewById(R.id.owner);
        viewHolder.image = (ImageView) convertView.findViewById(R.id.thumb);
        convertView.setTag(viewHolder);
    }else{
        viewHolder = (ViewHolder) convertView.getTag();
    }

    HashMap<String, String> item = (HashMap<String, String>) getItem(position);

    viewHolder.text.setText( item.get("poiName").toString() );
    viewHolder.owner.setText( item.get("owner").toString() );

    ImageView imageView = viewHolder.image;
    imageView.setTag(item.get("thumbs"));

    if(!item.get("thumbs").equals("null")){
        Drawable cacheImage = loader.loadDrawable(item.get("thumbs"), new ImageManage.ImageCallback() {
            public void imageLoaded(Drawable imageDrawable, String imageUrl) {
                ImageView imageViewByTag = (ImageView) _listView.findViewWithTag(imageUrl);
                if(imageViewByTag != null)
                    imageViewByTag.setBackgroundDrawable(imageDrawable);
            }
        });
        imageView.setImageDrawable(cacheImage);
        notifyDataSetChanged();
    }

    return convertView;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta