When the image has been downloaded, some of the images duplicates in the listview rows, even though some of the row has no ImageID, The adapter view duplicates the downloaded images, when i suddenly scroll the listview
My code in getView
public View getView(final int position, View convertView, ViewGroup parent) {
int anotherPosition = position;
if (inflater == null) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
final Holder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item, null);
holder = new Holder();
holder.title = (TextView) convertView.findViewById(R.id.description);
holder.exp = (TextView) convertView.findViewById(R.id.expiration);
holder.someImages = (ImageView) convertView.findViewById(R.id.listview_image);
holder.isFavouriteImage = (ImageView) convertView.findViewById(R.id.isFavourite);
convertView.setTag(holder);
convertView.setTag(R.id.listview_image, holder.someImages);
convertView.setTag(R.id.description, holder.title);
convertView.setTag(R.id.expiration, holder.exp);
convertView.setTag(R.id.isFavourite, holder.isFavouriteImage);
} else {
holder = (Holder) convertView.getTag();
}
RowItemLoyalty rowItemLoyalty = data.get(position);
if(rowItemLoyalty != null) {
holder.someImages.setTag(position);
holder.someImages.setImageBitmap(null);
holder.title.setText(data.get(position).getDescription());
holder.exp.setText(data.get(position).getDateEnd());
Log.d("TrueOrFalse", String.valueOf(holder.someImages));
if(holder.someImages != null ) {
if (data.get(position).getImageId() != 0) {
data.get(position).setBitmap(email, password, data.get(position).getImageId(), data.get(position).getBitmap(), new RowItemLoyalty.RetrieveBitmapListener() {
@Override
public void onSuccess(Bitmap bitmap) {
Log.d("ImageID123", String.valueOf(data.get(position).getImageId()));
holder.someImages.setImageBitmap(null);
if (data.get(position).getBitmap() != null) {
Log.d("True", "True");
holder.someImages.setImageBitmap(bitmap);
}
}
});
}
} else if(holder.someImages == null ) {
Drawable placeholder = ContextCompat.getDrawable(context, R.drawable.placeholderwhite);
holder.someImages.setImageDrawable(placeholder);
Log.d("PlaceHolder2", String.valueOf(placeholder));
}
//----------- placeholder for imageview list -----------
//holder.someImages.setImageBitmap(null);
if (data.get(position).getBitmap() != null && holder.someImages != null) {
holder.someImages.setImageBitmap(data.get(position).getBitmap());
Log.d("PlaceHolder", "Implemented");
Log.d("PlaceHolder", String.valueOf(data.get(position)));
} else if (data.get(position).getBitmap() == null) {
Drawable placeholder = ContextCompat.getDrawable(context, R.drawable.placeholderwhite);
holder.someImages.setImageDrawable(placeholder);
Log.d("PlaceHolder2", String.valueOf(placeholder));
}
//------------ for favourite logo-------------
if (data.get(position).getIsFavorite() == false) {
Drawable placeholderIsNotFavourite = ContextCompat.getDrawable(context, R.drawable.ic_favourite_icon);
holder.isFavouriteImage.setImageDrawable(placeholderIsNotFavourite);
} else if (data.get(position).getIsFavorite() == true) {
Drawable favourited = ContextCompat.getDrawable(context, R.drawable.favourite_two);
holder.isFavouriteImage.setImageDrawable(favourited);
}
}
return convertView;
}
My Holder class
public static class Holder {
TextView title;
TextView exp;
TextView tokensFor;
ImageView promotionImages;
ImageView isFavouriteImage;
}