RecyclerAdapter---万能RecyclerView适配器

本文介绍如何利用RecyclerAdapter作为万能适配器,简化RecyclerView的使用。通过XML布局定义RecyclerView,然后在Activity中创建BaseRecyclerAdapter的子类,并在需要更新列表时调用adapter.refresh()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接贴代码,使用方便

/**
 * 描述:recyclerview的adapter的封装
 * 作者:zzh
 * time:2019/05/06
 */
public abstract class BaseRecyclerAdapter<T> extends RecyclerView.Adapter<BaseRecyclerAdapter.BaseViewHolder> {

    private List<T> mDatas;//数据集合
    private Context mContext;//上下文
    private final int mItenId;
    private OnItemClickListner onItemClickListner;//单击事件

    protected BaseRecyclerAdapter(List<T> mDatas, int itemId) {
        this.mDatas = mDatas;
        this.mItenId = itemId;
        setHasStableIds(true);
    }

    @Override
    public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        mContext = parent.getContext();
        View view = LayoutInflater.from(mContext).inflate(mItenId, parent, false);
        final BaseViewHolder baseViewHolder = new BaseViewHolder(view);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (onItemClickListner != null)
                    onItemClickListner.onItemClickListner(v, baseViewHolder.getLayoutPosition());
            }
        });
        return baseViewHolder;
    }

    @Override
    public void onBindViewHolder(BaseRecyclerAdapter.BaseViewHolder holder, final int position) {
        T t = mDatas.get(position);
        bindData(holder, position, t);
    }

    @Override
    public int getItemCount() {
        return mDatas == null ? 0 : mDatas.size();
    }

    /**
     * 刷新数据
     *
     * @param datas
     */
    public void ref
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值