(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?其名曰数据绑定,使用它我们可 ...
随机推荐
- Python爬虫开发【第1篇】【Scrapy shell】
Scrapy Shell Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据 ...
- delphi的万能数据库操作
好多人都抱怨delphi没有提供一个可以把任意数据放入数据库的控件,虽然说用代码实现也不难,但是有控件会更方便,这次我终于还是抽出空来做了这么个控件,以后就可以直接拖放了.它支持把任意数据类型写入数据 ...
- 【Codevs1346】HelloWorld编译器
http://codevs.cn/problem/1346/ 可怜我战绩 // <1346.cpp> - 10/30/16 17:12:09 // This file is made by ...
- HDU - 4513 吉哥系列故事――完美队形II(manacher)
1.找出一个最长的回文子串,要求中间的值最大,然后向两侧递减. 2.判断条件改为:Ma[i+Mp[i]]==Ma[i-Mp[i]]&&Ma[i-Mp[i]]<=Ma[i-Mp[i ...
- I.MX6 dhcpcd 需要指定网卡
/************************************************************************** * I.MX6 dhcpcd 需要指定网卡 * ...
- 【转】python中获得当前目录和上级目录
原文地址:http://blog.csdn.net/liuweiyuxiang/article/details/71154346 获取当前文件的路径: from os import path d = ...
- python解决list unicode转中文显示
#!/usr/bin/python# #-*-coding:UTF-8-*- import xlrd book = xlrd.open_workbook('Interface_data.xlsx') ...
- EF include 预先加载
在asp.net mvc 中,常在控制器中预先加载导航属性,以便在视图中能够显示起关联的数据. 如果不预先加载,View中就会无法呈现外键的 关联数据. 会提示EF 错误发生. 一. 模型: publ ...
- 如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令) (转载)
转自:http://blog.csdn.net/year_9/article/details/20318407 sed是一个很好的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换.删除.新 ...
- bzoj 2456: mode【瞎搞】
这题加个#include都会MLE-- 神思路,每个数抵消宇哥和它不同的数,最后剩下的就是众数 #include<cstdio> int n,la,x,tot; int main() { ...