Android - BaseRecyclerViewAdapterHelper

字数 292阅读 91

BaseRecyclerViewAdapterHelper-适配器的使用

1.省掉了创建ViewHolder的步骤
2.省掉了数据判空的步骤
3.支持上拉加载下拉刷新功能
4.支持添加头布局、尾布局
5.item点击事件
6.以及添加分组功能(具体怎么实现还有待完善,个人觉得应该可以用来实现类似淘宝的筛选功能)

总的来说就是简单、实用、简洁,比以往的自己写的适配器少了不少代码,减少了代码量查阅起来也方便。

具体使用方法

一、添加依赖

1.首先在你项目的 build.gradle 中的 allprojects/repositories 添加

maven { url "https://jitpack.io" }

2.之后再 app 目录下添加依赖

compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
二、创建适配器

适配器预览(这里展示的是部分代码具体功能下面分开写)

public class HomeAdapter extends BaseQuickAdapter<HomeBean.DataBean.DatasBean, BaseViewHolder> {

    private Context mContext;

    public HomeAdapter(Context context, @Nullable List<HomeBean.DataBean.DatasBean> data) {
        super(R.layout.item_home_recycleview, data);
        mContext = context;
    }


    @Override
    protected void convert(BaseViewHolder helper, HomeBean.DataBean.DatasBean item) {
        helper.setText(R.id.itemTitle, item.getTitle())
        .setText(R.id.itemName, item.getAuthor())
        .setText(R.id.itemClassification, item.getSuperChapterName())
        // 简单标注一下,第一个参数为item上控件ID,
        // 第二个参数为实体类中的数据
        .setText(R.id.itemTime, item.getNiceDate()); 
    }
}
三、Activity中的代码

绑定适配器

// 与正常绑定适配器一样没什么差别
mHomeRecycleView.setLayoutManager(new LinearLayoutManager(getContext()));
mAdapter = new HomeAdapter(getContext(), null);
mAdapter.setNewData(data);
mHomeRecycleView.setAdapter(mAdapter);
四、实现具体功能的代码

1.上拉加载下拉刷新功能

mAdapter.setOnLoadMoreListener(this, mHomeRecycleView);
// 然后实现其方法,在方法中实现逻辑
if (data.size() != 0) {
        mAdapter.addData(data);
        // 开始刷新
        mAdapter.loadMoreComplete();
    } else {
        mAdapter.loadMoreEnd();
}

2.添加头尾布局

// 添加头布局,参数为自己定义的View布局
mAdapter.addHeaderView(getView());
// 添加尾布局,参数相同
mAdapter.addFooterView(getView());

3.item 点击事件

mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
            @Override
            public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
                // 在这之中写具体代码
            }
        });
剩余功能在之后的使用中会相继补全,如有不足还望指正。

推荐阅读更多精彩内容