package shts.jp.android.nogifeed.adapters; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; import java.util.List; public abstract class RecyclableAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private LayoutInflater inflater; private List<T> list; public RecyclableAdapter(Context context, List<T> list) { super(); this.list = list; setup(context); } private void setup(Context context) { inflater = LayoutInflater.from(context); } @Override public int getItemCount() { return list.size(); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { return onCreateViewHolder(inflater, viewGroup); } @Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { Object object = list.get(position); onBindViewHolder(viewHolder, object); } public abstract void onBindViewHolder(RecyclerView.ViewHolder viewHolder, Object object); public abstract RecyclerView.ViewHolder onCreateViewHolder(LayoutInflater inflater, ViewGroup viewGroup); }