(Android MVVM)使用Data Binding Library(2)
复习
上一篇学到了如何在layout.xml文件中增加元素,实现数据绑定,本篇接着学习。
事件处理
在layout.xml上绑定事件有两种方法,各有千秋。
1.方法引用
2.监听绑定
1.使用方法引用方法绑定的事件,方法签名必须和要处理的事件的签名一致。如:
android:onClick="@{handlers::onClickFriend}"
由于View.onClick(View v)的签名是这样。所以,handler类中onClickFriend()方法的参数必须也是onClickFriend(View v)。否则在执行时会报错。
2.使用监听绑定方式绑定的事件,相当于在onClick(View v)中调用传入的方法,对方法签名不做要求,更可以传入需要操作的数据。
android:onClick="@{() -> presenter.onSaveClick(user)}"
上面代码点击事件交给了presenter对象的onSaveClick(user)对象处理,注意:在上面的lambda表达式中,并没有写View参数,如果调用的方法不需要这个参数,这个是可以省略的。当然也可以写成下面这样:
android:onClick="@{(view) -> presenter.onSaveClick(user)}"
我们在presenter对象的方法中可以对传入的user进行处理,处理后的数据可以实时的显示在view上。实现数据和view的绑定。
当然,如上篇创建的POJO(或者Java Bean)对象,是不能相应数据变化时,显示在view上的功能。我们需要实现对数据的监测。让其实现实时响应的功能。
实现数据对象与view间的响应
主要有3种实现方式:
1.监听类本身
2.监听filed
3.使用提供的监听集合
(Android MVVM)使用Data Binding Library(2)的更多相关文章
- (Android MVVM)使用Data Binding Library(1)
Data Binding Library 用官方提供的Data Binding Library,可以最大限度的减少findViewById(),setOnClickListener()之类的胶水代码, ...
- Android Data Binding Library
Data Binding Library Data Binding Library是一个支持库,允许您使用声明格式(而不是编程)将布局中的UI组件与应用程序中的数据源绑定. 布局通常在调用UI框架方法 ...
- 告别findViewById(),ButterKnife,使用Google Data Binding Library(1)
Data Binding Library 用数据绑定编写声名性布局,可以最大限度的减少findViewById(),setOnClickListener()之类的代码.并且比起findViewById ...
- android -------- Data Binding的使用(一)
Google推出自己官方的数据绑定框架Data Binding Library 已经很久了,很多企业也在使用 面试的时候也有问到,所以也去学习了一番,特来分享一下,希望对各位有所帮助 描述: Data ...
- Android开发教程 - 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...
- Android-MVVM架构-Data Binding的使用
项目整体效果: Awesome-Android-MVVM 什么是MVVM, 为什么需要 MVVM? 如何在Android中使用Data Binding实现MVVM架构? 什么是MVVM , 为什么需要 ...
- Data Binding(数据绑定)用户指南
1)介绍 这篇文章介绍了如何使用Data Binding库来写声明的layouts文件,并且用最少的代码来绑定你的app逻辑和layouts文件. Data Binding库不仅灵活而且广泛兼容- 它 ...
- Android开发利器之Data Binding Compiler V2 —— 搭建Android MVVM完全体的基础
原创声明: 该文章为原创文章,未经博主同意严禁转载. 前言: Android常用的架构有:MVC.MVP.MVVM,而MVVM是唯一一个官方提供支持组件的架构,我们可以通过Android lifecy ...
- Android Data Binding实战(一)
在今年Google I/O大会上,Google推出Design Library库的同时也推出了Android Data Binding,那么什么是Data Binding?其名曰数据绑定,使用它我们可 ...
随机推荐
- Apache Karaf配置远程调试
软件环境 apache-karaf-4.0.0 配置方法: 在 bin/karaf.bat 文件里,顶部增加 set KARAF_DEBUG=true 然后.重新启动karaf 启动之后.就可以看到例 ...
- centos7 配置虚拟交换机(物理交换机truckport设置)(使用brctl)
感谢朋友支持本博客.欢迎共同探讨交流,因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- slf4j的总结
参考文章 log4j2使用总结 slf4j介绍以及实现原理窥探 使用Slf4j集成Log4j2构建项目日志系统的完美解决方案 slf4j(全称是Simple Loging Facade For Jav ...
- java8--IO工具类(java疯狂讲义3复习笔记)
Paths类 public static void pathTest(){ Path path = Paths.get("~"); System.out.println(path) ...
- Test redis
单机测试: public class RedisClient{ private Jedis jedis; private JedisPool jedisPool; private ShardedJed ...
- Lightoj 1003 - Drunk(拓扑排序)
One of my friends is always drunk. So, sometimes I get a bit confused whether he is drunk or not. So ...
- frameset 框架整体退出登录的问题
1 设置其他的页面都验证session,如果session不存在就跳转到 Login 页: 2 Login中添加下面的js代码: <script language="JavaScrip ...
- aapt的常用命令
1. 列出apk包的内容 aapt l[ist] [-v] [-a] file.{zip,jar,apk} -v 以table形式列出来 -a 详细列出内容 例如:aapt l <你的apk文件 ...
- I.MX6 Android CAN 命令行测试
/********************************************************************* * I.MX6 Android CAN 命令行测试 * 说 ...
- linux 忘记root(这里以centos 6.5为例)密码的解决办法
在使用linux的过程中有时候会忘记root用户的密码(尤其是进行交接而文档内容不全的时候),这个时候我们就可以进入单用户模式来重置root用户密码.下面来讲解重置root密码的方式,也可以说是破解r ...