Android技术汇总Android Data Binding

android Data Binding(03 点击事件)

2018-09-26  本文已影响18人  土肥圆的诺诺

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
写东西啊,其实还是挺慢的,因为自己写代码挺快的,但是一边写,一边截图,还得考虑在学习过程中的各种坑,这就比较痛苦了,现在想下那些坚持写博客的大佬,默默沉思一下,自己距离大佬 也就差个千儿八百篇了。哈哈。
上一篇我们讲了怎么动态刷新数据,这一回我们讲怎么增加常用的点击事件,基本上有三种方法(我自己知道的),如果哪里不全面请留言告诉我,大家一起交流。
第一种,最简单暴力,我写demo的时候比较喜欢
其实Binding对象就是一个数组将当前页面所有的view都封装到一个数组里面,点这个操作就相当于拿到了想要的view对象,直接加各种点击事件就可以了。但是看起来比较low...

第二种,我们在我们的main页面写一个内部类,注意类是要public的,


当你运行提示如下异常的时候,请看看上面我写的那句话public

image.png

将我们的点击管理者传入进来


然后呢,我们在xml文件里面设置一下
data区域肯定要引入一下,不然文件也不知道你引用的是哪个类的方法


在按钮上,我们找到他的onclick 添加方法


image.png

说一下哈,这种方式,要求你的内部类里面的方法参数,必须和想设置的点击事件参数一样
我们同样也增加一个长按点击事件


image.png

ps说明一下,我个人理解 是数据引用,你加括号肯定报错,我给大家运行一下看看报错
image.png
image.png

删掉括号,我们运行一下,点击和长按一下


image.png
成功,但是吧,我个人觉得这种比较蛋疼,因为基本上还得去把方法复制过来,我还特地百度了下,复制粘贴....
第三种方法,这种是我比较喜欢的,我写了一个方法,名字随便写,但是在XML里面写的时候要注意,这个时候得带括号了,这种写法是lambda表达式写法,不熟悉的可以去度娘下,有空我也写一篇给大家

image.png
运行下点击下,显示成功
image.png
我们依葫芦画瓢,加一个长按的事件,增加一个参数,类型为我们的数据类user,并打印name,在xml那里我们该怎么写呢,看图就好了 image.png image.png image.png

运行下,看看能不能行,


image.png

报错


image.png

为啥呢?好吧,其实长按点击事件是有返回值的,是布尔类型,修改返回值为boolean类型,在运行,就可以运行了,我们长按一下,发现我们设置的语句已经回传回来了,这是我比较喜欢的方式,当然我也特意把注意点做了截图,注意长按返回值哦


image.png image.png

其实这里还有一个小问题就是,我们的age一直没用到,如果我想把age显示到我们的textview上看看效果


image.png
image.png

这个异常的意思其实很简单,textview 有个方法是设置ID,当然一般是R.string.xxx,我们这里传了个11,肯定没这个id,所以就异常了,以前我们可以将age加个空格转一下,现在是绑定类型,该怎么处理呢?


image.png

其实很简单,我们写个方法就可以了,数据绑定是优势,也有蛋疼的地方


image.png
image.png

一波操作过后,我们的数据出来了


image.png
有的同学说,我怎么搞都不行呢,那就注意下,你是否将点击事件传入了进来
image.png
点击效果完成了,那么我们感觉还缺啥啥呢?

好吧,如果我想将我更改的数据传递给bean类呢,实现双向绑定呢?
那就下一篇吧,下一篇讲点零碎的东西
下一篇狗链---android Data Binding(04 双向绑定 和常见问题)

https://www.jianshu.com/p/94a17cd869d5

上一篇下一篇

猜你喜欢

热点阅读