【原创】Android数据绑定基础
本文以一个简单地例子,讲解如何使用DataBinding。使用的开发环境是AndroidStudio2。...
我们在编写Android应用的时候,经常需要将数据显示到UI组件中,我们一般的写法是,首先通过findViewById()方法,获得各个组件对象,然后通过这些组件的setter方法,将数据更新到各个组件。如果数据有更新,再次调用组件的setter方法,更新到UI。
这种方式在用法上没什么问题,大家都是这么用。但如果做过Web开发的同学就知道,在Web开发中有一种数据绑定技术,可以让这种过程变得更加简单高效。它的基本思路是,将对象(属性)和对应的UI组件“绑定”在一起,当对象的属性有更新的时候,它将自动更新到UI而不需我们去调用组件的setter方法。
在Android M中,引入了Data Binding的功能(但不是在核心库中,因此需要额外的配置),我们可以通过简单的配置即可在Android应用中使用Data Bindding的功能。本文即以一个简单地例子,讲解如何使用Data Binding。使用的开发环境是Android Studio 2。
在Android Studio中,首先在build.gradle中进行下面的配置:
dataBinding { enabled true}
然后,定义一个POJO类,如:
public class Student { String name; int age; public Student(int age, String name) { this.age = age; this.name = name; } public int getAge() { return age; } public String getName() { return name; }}
然后设置布局文件的根节点,根节点使用,即在原来的布局文件中,最外层加上一层。设置一个节点,用于绑定POJO类。
其中,用name定义的student就类似于一个对象变量名称,后续在布局文件中可以使用它调用Student类的属性,type是完整的路径+类名。
然后,可以将不同的属性绑定在不同的组件上:
使用@{student.name}的方式,将Student的name属性绑定在第一个TextView,使用@{""+student.age}将Student的age绑定到第二个TextView,注意这里为了避免Android把int类型的值当做资源id,需要在前面加上一个空字符串。default用于设置默认值。在布局文件中,除了可以用“+”进行字符串连接外,还可以使用其他常用的操作符:
ü 数学 + - / * %
ü 字符串连接 +
ü 逻辑 && ||
ü 二进制 & | ^
ü 一元运算 + - ! ~
ü 移位 >> >>>
< >=
关注 优才网
微信扫一扫关注公众号