旧版本BaseRecyclerViewAdapterHelper 添加DataBinding

本文介绍了如何在项目中使用老版本的BaseRecyclerViewAdapterHelper(2.9.34),并解决与新版本库的兼容问题。通过示例代码展示了如何在不修改大量原有代码的情况下,实现数据绑定和点击事件的处理,同时提供了针对老库的修改方法,如将`setNeInstance`改为`setData`以及处理点击事件的方法。
摘要由CSDN通过智能技术生成

1.资源库 

github.CymChad:BaseRecyclerViewAdapterHelper  

版本号: 2.9.34

2.使用场景

因为一些老的 库 比如 

cn.imlibo:FilePicker:v0.0.1_alpha 使用的是 2.9.34 的版本,库的资源比较大,使用3.0以上会修改太多东西 ,那我们自己的项目向老版本进行兼容可能修改的比较少。

3.库的兼容


/**
 * des: DataBindBaseViewHolder
 *
 * @author: lsw
 * @date: 2020/11/3
 */
public  class DataBindBaseViewHolder extends BaseDataBindingHolder {
    private ViewDataBinding binding;
    public DataBindBaseViewHolder(@NonNull View itemView) {
        super(itemView);
        binding = DataBindingUtil.bind(itemView);
    }

    public ViewDataBinding getDataBinding() {
        return binding;
    }
}

public class BaseDataBindingHolder<BD extends ViewDataBinding> extends BaseViewHolder {
    protected BD dataBinding ;

    public BaseDataBindingHolder(View view) {
        super(view);
        dataBinding =  DataBindingUtil.bind(view);
    }
}

4.老库的使用和修改

使用代码和3.0.4的库的代码是一样

 @Override
    protected void convert(@NotNull DataBindBaseViewHolder dataBindBaseViewHolder, Object bean) {
        ItemTjListNewBinding dataBinding = (ItemTjListNewBinding) dataBindBaseViewHolder.getDataBinding();
}

修改 2.9.34 库 修改修改 

setNeInstance 方法为setData 

和点击事件的方法 

adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(BaseQuickAdapter adapter, View view, int position) {

        }

}

就版本 没有getItemPostion() 方法是私有的 ,我们可以用 

getData().indexOf(bean);
@Override
    protected void convert(@NotNull DataBindBaseViewHolder dataBindBaseViewHolder, List<String> bean) {
      

        dataBinding.tvHead.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                boolean selected = dataBinding.tvHead.isSelected();
                // 这里获取到相应的index 
                int itemPosition = getData().indexOf(bean);
                if(selected){
                    // 设置为不选中
                    dataBinding.tvHead.setSelected(!selected);
                    clickFiled.remove(itemPosition);
                }else {
                    // 设置成选中
                    clickFiled.add(itemPosition);
                    dataBinding.tvHead.setSelected(!selected);
                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值