package com.nilhcem.bblfr.ui; import android.content.Context; import android.support.annotation.LayoutRes; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import butterknife.ButterKnife; public abstract class BaseRecyclerViewHolder<T> extends RecyclerView.ViewHolder { private T mData; private boolean mWithVi; protected BaseRecyclerViewHolder(ViewGroup parent, @LayoutRes int resource) { this(parent, resource, true); } protected BaseRecyclerViewHolder(ViewGroup parent, @LayoutRes int resource, boolean withVi) { super(LayoutInflater.from(parent.getContext()).inflate(resource, parent, false)); if (withVi) { ButterKnife.bind(this, itemView); mWithVi = true; } } protected Context getContext() { return itemView.getContext(); } public void bindData(T data) { // Should be implemented on sub-classes. mData = data; } public T getData() { return mData; } public void setOnClickListener(View.OnClickListener l) { itemView.setOnClickListener(l); itemView.setTag(this); } }