android Data Binding(06 列表绑定)

android Data Binding(01 入门篇)
https://www.jianshu.com/p/7a9ddf4f1301
android Data Binding(02 数据刷新)
https://www.jianshu.com/p/59fc32f1f0aa
android Data Binding(03 点击事件)
https://www.jianshu.com/p/b83c83dbc43d
android Data Binding(04 双向绑定 和布局倒入)
https://www.jianshu.com/p/94a17cd869d5
android Data Binding(05自定义属性)
https://www.jianshu.com/p/2edff6132d3b
android Data Binding(06 列表绑定)
https://www.jianshu.com/p/5c91bf49e057
android Data Binding(07 零散汇总)
https://www.jianshu.com/p/882a2169868b
距离伟大祖国母亲生日又近了一天,今天我们来写下列表绑定,其实就是在我们常用的Listview和Recyclerview中怎么使用,我们就拿RecyclerView来做案例吧(其实我都快忘记ListView怎么写了)哈哈

android Data Binding(06 列表绑定)_第1张图片

熟练打开我们的As,然后写一个布局,加入列表和一个按钮,给按钮增加点击事件


android Data Binding(06 列表绑定)_第2张图片
image.png
android Data Binding(06 列表绑定)_第3张图片
image.png

接下来该做什么呢,当然是先给我们的RecyclerView做好最基本的设置啦,发现我们需要一个适配器

android Data Binding(06 列表绑定)_第4张图片

好的,开启我们的适配器之路,基本上适配器大家都会写,我们继承RecyclerView.Adapter,发现需要的范型是VH extends ViewHolder,写我们的一个ViewHolder


android Data Binding(06 列表绑定)_第5张图片
image.png

android Data Binding(06 列表绑定)_第6张图片
image.png

android Data Binding(06 列表绑定)_第7张图片
image.png

为了实现我们的绑定计划我们需要做些小手脚


android Data Binding(06 列表绑定)_第8张图片
image.png

我们要限制输入的范型肯定是要一个ViewDataBinding, 构造函数传入我们定义的mBingding对象,
mBinding.getRoot(),其实返回的是你塞入布局的xml生成的对象


android Data Binding(06 列表绑定)_第9张图片
image.png

image.png

现在我们的ViewHolder完成,塞入适配器,覆盖方法

android Data Binding(06 列表绑定)_第10张图片
image.png

写一个item布局出来,因为要写数据绑定么,所以我们就写用我们的数据类吧,倒入data标签


android Data Binding(06 列表绑定)_第11张图片
android Data Binding(06 列表绑定)_第12张图片
image.png

生成一个帮助类,布局引用,有同学说,我能直接写一个类封装下方法么?其实我很早之前也这么写了,但是老是报错,在页面里面写了个内部类,就发现可以用, 不然会报错,现在想想,估计是因为对象没有被我们页面绑定吧,我们没绑定怎么可能去使用呢?如果可行,请告诉我,互相学习

android Data Binding(06 列表绑定)_第13张图片
image.png

android Data Binding(06 列表绑定)_第14张图片
image.png

回来继续写我们的适配器,生成构造函数


android Data Binding(06 列表绑定)_第15张图片
image.png

使用DataBindingUtil绑定布局,当然大家也可以从构造参数传入布局


image.png

传入数据绑定


android Data Binding(06 列表绑定)_第16张图片

列表长度等于list的长度


android Data Binding(06 列表绑定)_第17张图片

现在我们回到页面,测试一下,数据是出来了,但是UI界面有点问题,我们修改下item布局,就可以了


android Data Binding(06 列表绑定)_第18张图片
image.png
android Data Binding(06 列表绑定)_第19张图片
image.png
android Data Binding(06 列表绑定)_第20张图片
image.png
android Data Binding(06 列表绑定)_第21张图片
image.png

我们测试下点击增加数据,写一个数据方法


android Data Binding(06 列表绑定)_第22张图片
image.png

点击几下,发现刷新出来了我们新增的数据

android Data Binding(06 列表绑定)_第23张图片
image.png

有时候大家反应,说我在设置BR.XXX的时候,爆红,显示木有,如果你确认你没有写错,那么可以直接先写上,运行一下,我也不知道为什么...但是编译或者运行下就有了
列表绑定我们基本讲完了,基本上常用的我们讲的7788了,那么接下来我们收收尾,讲点零散的东西
比如动画,控件更新等
突然想起来,在这个例子里面,没有写item的点击和长按事件,大家想增加这个方法的可以看我下面的一篇文章
(适配器添加条目长按和点击事件) https://www.jianshu.com/p/ec683aa524c8

android Data Binding(07 零散汇总) 链接地址 :https://www.jianshu.com/p/882a2169868b

你可能感兴趣的:(android Data Binding(06 列表绑定))