编写这个baseRecyclerAdapter类是为了自己可以增加一些想要添加的功能 为以后开发提供更多的方便
/** * adapter 基类 * Created by Home-Pc on 2017/7/13. */ public abstract class BaseRecyclerAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> { protected LayoutInflater layoutInflater; protected View itemRootView; public void setOnItemRecyclerViewClickListener(OnItemRecyclerViewClickListener onItemRecyclerViewClickListener) { this.onItemRecyclerViewClickListener = onItemRecyclerViewClickListener; } protected OnItemRecyclerViewClickListener onItemRecyclerViewClickListener; public BaseRecyclerAdapter(Context context) { layoutInflater = LayoutInflater.from(context); } @Override public VH onCreateViewHolder(ViewGroup parent, int viewType) { itemRootView = onItemContentView(layoutInflater,parent); return onCreateViewHolder(itemRootView,viewType); } /** * 绑定adapter View视图 * @param layoutInflater * @param viewGroup * @return */ protected abstract View onItemContentView(LayoutInflater layoutInflater,ViewGroup viewGroup); /** * 实例化Viewholder * @param itemView * @param viewType * @return */ protected abstract VH onCreateViewHolder(View itemView,int viewType); @Override public void onBindViewHolder(final VH holder, final int position) { onFindViewHolder(holder,position); if(initItemViewGroup(holder) != null){ initItemViewGroup(holder).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(onItemRecyclerViewClickListener != null){ onItemRecyclerViewClickListener.onItemClickListener(initItemViewGroup(holder),position); } } }); } } /** * 设置item点击事件 * @param holder * @return 最外层的主布局 */ protected View initItemViewGroup(VH holder){ return null; } /** * 处理adapter数据逻辑 * @param hold * @param position */ protected abstract void onFindViewHolder(VH holder, int position); public abstract class BaseViewHolder extends RecyclerView.ViewHolder { public BaseViewHolder(View itemView) { super(itemView); } } }
其中 OnItemRecyclerViewClickListener:
/** * RecyclerViewAdpater 点击事件 * Created by Home_Pc on 2017/3/29. */ public interface OnItemRecyclerViewClickListener { void onItemClickListener(View view, int position); }