package com.mobidev.recyclerviewexample; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import java.util.ArrayList; /** * Created by lawrence on 7/17/15. * <p/> * The adapter extends ecyclerView.Adapter class passing our internal class that implements ViewHolder pattern */ public class CodingLoveAdapter extends RecyclerView.Adapter<CodingLoveAdapter.ViewHolder> { private Context mContext; private ArrayList<CodingLoveItem> items; /** * Constructor * * @param context * @param items */ public CodingLoveAdapter(Context context, ArrayList<CodingLoveItem> items) { this.mContext = context; this.items = items; } /** * creates a new instance of ViewHolder * * @param viewGroup * @param i * @return */ @Override public CodingLoveAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View v = LayoutInflater.from(viewGroup.getContext()) .inflate(R.layout.recycler_view_card_item, viewGroup, false); ViewHolder viewHolder = new ViewHolder(v); return viewHolder; } /** * This is where the data is shown in the UI (we bind our data to the views here) * * @param viewHolder * @param i */ @Override public void onBindViewHolder(CodingLoveAdapter.ViewHolder viewHolder, int i) { CodingLoveItem codingLoveItem = items.get(i); viewHolder.tvDescription.setText(codingLoveItem.item_description); Glide.with(mContext) .load(codingLoveItem.item_image) .asGif() .placeholder(R.drawable.loading_spinner) .crossFade() .into(viewHolder.imgThumbnail); } /** * Returns the total number of items in the data set hold by the adapter * * @return */ @Override public int getItemCount() { return items.size(); } class ViewHolder extends RecyclerView.ViewHolder { public ImageView imgThumbnail; public TextView tvDescription; public ViewHolder(View itemView) { super(itemView); imgThumbnail = (ImageView) itemView.findViewById(R.id.img_thumbnail); tvDescription = (TextView) itemView.findViewById(R.id.tv_description); } } }