编写一个增加开发效率的BaseRecyclerAdapter,持续中...

来源:互联网 发布:淘宝店铺优惠券在哪 编辑:程序博客网 时间:2024/06/03 13:36

编写这个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);}





阅读全文
0 0