【原创】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用于设置默认值。在布局文件中,除了可以用“+”进行字符串连接外,还可以使用其他常用的操作符:

ü 数学 + - / * %

ü 字符串连接 +

ü 逻辑 && ||

ü 二进制 & | ^

ü 一元运算 + - ! ~

ü 移位 >> >>>

< >=


    关注 优才网


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册