RecyclerAdapter的官网需要了解更多滴滴进去吧!
上面是官网,我就不解释了直接上代码
框架的引入
先在 build.gradle(Project:XXXX) 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
然后在 build.gradle(Module:app) 的 dependencies 添加:
dependencies {
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
}
adapter适配器
1、首先需要继承BaseQuickAdapter
,然后BaseQuickAdapter<Status, BaseViewHolder>
第一个泛型Status
是数据实体类型,第二个BaseViewHolder
是ViewHolder其目的是为了支持扩展ViewHolder。
2、重写父类的方法
3、我们说下上面的第一个泛型<T>这个泛型是一个实体类数据,在我们工作当中可能会遇到不是集合的实体类,这个时候就需要我们自己在套一层list,就可以完美解决!
4、官网又说上下文就是nContext,但是呢为了减少不必要的bug呢!推荐使用getApplicationContext()
public class SystemMsgAdapter extends BaseQuickAdapter<SystemMsgBean.ListBean, BaseViewHolder> {
public SystemMsgAdapter(int layoutResId, @Nullable List<SystemMsgBean.ListBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, SystemMsgBean.ListBean item) {
helper.setText(R.id.sys_brief_tv, item.getBrief());
//里面是自己的逻辑问题,但是需要点击事件呢一定要绑定,
}
页面问题和点击事件
//数据问题建议大家判断一下哈! 有时候不能太详细后台也不要太相信自己,更不要去相信网络
private void initOrderRecyclerData() {
if (mLists == null) {
mLists = new ArrayList<>();
}
if (mAdapter == null) {
mLists.addAll(mListBeans);
mAdapter = new OrderRecyclerAdapter(R.layout.order_recycler_item, mLists);
mRecyclerView.setAdapter(mAdapter);
} else {
if (mPage == 1) {
mLists.clear();
}
mLists.addAll(mListBeans);
mAdapter = new OrderRecyclerAdapter(R.layout.order_recycler_item, mLists);
mRecyclerView.setAdapter(mAdapter);
}
//点击事件
mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
}
});
//你所绑定的item的点击事件
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
Intent intent = null;
switch (view.getId()) {
//取消订单
case R.id.order_tv_cancel_pay:
break;
//付款
case R.id.order_tv_pay:
break;
//确定收货
case R.id.order_tv_confirm:
break;
//物流信息
case R.id.order_tv_logistics:
break;
case R.id.order_tv_logistics_1:
break;
default:
break;
}
}
});
}
上面之间简单说了一下使用,如果你想要更多更炫的动画,就去官网自己学习吧!