imagelistviewduplicatesfresco

Adapter showing the wrong images while using Fresco library


i have used fresco library to load images in the adapter. but the images are not set correctly as i expected. Here is my code. please help me. thanks in advance.

public class HomeListingAdapter_recyler1 extends RecyclerView.Adapter  {
    private Context context;
    private ArrayList propertyItemList;
    private ImageLoader mImageLoader;
    public HomeListingAdapter_recyler1(HomeListingActivity_recycler propertyViews, ArrayList propertyItemList) {
        Fresco.initialize(propertyViews);
        this.propertyItemList = propertyItemList;
        this.context = propertyViews;
    }
    @Override
    public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.property_item_layout,parent,false);
        CustomViewHolder viewHolder = new CustomViewHolder(itemLayoutView);
        return viewHolder;
    }
    @Override
    public void onBindViewHolder(final CustomViewHolder holder, final int position) {
        mImageLoader = VolleySingletonPattern.getInstance(context).getImageLoader();
        holder.txtPropertyName.setText(propertyItemList.get(position).ville);
        holder.txtPropertyType.setText(propertyItemList.get(position).bienName);
        if(propertyItemList.get(position).pieces.equalsIgnoreCase("0")){
            holder.txtPropertySurfaceArea.setText(propertyItemList.get(position).surface+" "+context.getString(R.string.meter_square));
        }else{            holder.txtPropertySurfaceArea.setText(propertyItemList.get(position).surface+" "+context.getString(R.string.meter_square)+" - "+ propertyItemList.get(position).pieces+" "+context.getResources().getString(R.string.pieces));
        }
        holder.txtPropertyPrice.setText(propertyItemList.get(position).montantLoyer);
        Uri imageUri;
        try {
            if(!TextUtils.isNullOrEmpty(propertyItemList.get(position).photo)) {
                imageUri = Uri.parse(propertyItemList.get(position).photo);
                holder.imgPropertyImage.setVisibility(View.VISIBLE);
                holder.imgPropertyImage.setImageURI(imageUri);
            }
        } catch (Exception e) {
        }
    }
    @Override
    public int getItemCount() {
        return propertyItemList.size();
    }
    public class CustomViewHolder extends RecyclerView.ViewHolder {
        SimpleDraweeView imgPropertyImage;
        public TextView txtPropertyName , txtPropertyType , txtPropertySurfaceArea ,txtPropertyPrice;
        public CustomViewHolder(View itemView) {
            super(itemView);
            imgPropertyImage = (SimpleDraweeView) itemView.findViewById(R.id.image_property);
            txtPropertyName = (TextView)  itemView.findViewById(R.id.txt_property_name);
            txtPropertyType = (TextView)  itemView.findViewById(R.id.txt_property_type);
            txtPropertySurfaceArea = (TextView)  itemView.findViewById(R.id.txt_property_surface_piece);
            txtPropertyPrice = (TextView)  itemView.findViewById(R.id.txt_property_price);
        }
    }
}


Solution

  • Your imgPropertyImage should be a SimpleDraweeView, not an ImageView.