package com.eighteengray.procamera.widget.baserecycler; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import java.util.List; public abstract class BaseRecyclerAdapter<T> extends RecyclerView.Adapter<BaseRecyclerViewHolder> { List<T> mDatas = new ArrayList<>(); protected final int mItemLayoutId; public BaseRecyclerAdapter(int layoutid) { this.mItemLayoutId = layoutid; } @Override public long getItemId(int position) { return position; } @Override public int getItemCount() { return mDatas.size(); } @Override public BaseRecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(mItemLayoutId, parent, false); return new BaseRecyclerViewHolder(view); } @Override public void onBindViewHolder(BaseRecyclerViewHolder holder, int position) { setData2ViewR(holder, mDatas.get(position), position); } public void setData(List<T> list) { this.mDatas = list; notifyDataSetChanged(); } public abstract void setData2ViewR(BaseRecyclerViewHolder baseRecyclerViewHolder, T item, int position); }