Ich habe ein GridView, das zwei Spalten ImageViews anzeigt. Ich lade diese Bilder mit einer AsyncTask (siehe diesen Beitrag Lazy load of images in ListView).
Aber wenn ich im GridView scrolle, werden die Bilder in den Positionen vermischt. Zum Beispiel zeigt das 14. Bild das 1. Bild an, ich denke, die Ansicht versucht, das alte Bild anzuzeigen, bevor die AsyncTask beendet ist.
Mein Code:
public Content getItem(int position) {
return contents.get(position);
}
public long getItemId(int position) {
return position;
}
@Override
public boolean hasStableIds() { return true; }
public View getView(int position, View convertView, ViewGroup parent) {
Thumbnail contentView;
Content current = contents.get(position);
if (convertView == null) {
contentView = new Thumbnail(mContext);
}
else {
contentView = (Thumbnail) convertView;
}
contentView.title = current.getTitle();
contentView.image = current.getImage();
contentView.link = current.getLink();
contentView.init();
return contentView;
}
Init Funktion
TextView titleText = (TextView)super.findViewById(R.id.titleText);
titleText.setText(title);
ImageView imageControl = (ImageView)super.findViewById(R.id.thumbImage);
DrawableManager loadImage = new DrawableManager(); loadImage.fetchDrawableOnThread(imgUrl, imageControl);
Ich warte auf deine Hilfe
Danke