DataBinding 学习系列(1)基础知识的了解和使用

介绍

DataBinding,2015年IO大会介绍的一个框架,是Google对MVVM在Android上的一种实现,可以直接数据绑定到xml中,并实现自动刷新。

好处:

去掉了大部分的UI相关代码(比如findViewById、 setOnClickListener、setText等)

xml变成UI的唯一真实来源,数据绑定也直接发生在xml

(更多可以在网上查询)

我在网上也看了很多的资料,写的都很不错,但是大都很老旧,所以自己在这个基础上,重新整理一下大部分的常用知识点。

配置

网上有很多是以前的资料,现在基本上都是基于AS 2.2 和 gradle 2.2 以上开发,比起想办法姜蓉老版本,我更希望你能直接把你的IDE升级,所以下面的配置都是基于gradle 2.2 以上。

首先在配置gradle文件

android{
    ......
    dataBinding{
       enabled = true
    }
}

注意是在android里面添加,然后就完成了(完美)。

实战

直接扔出代码,让我们直接看看DataBinding到底能做什么。

这里写图片描述

这里写图片描述

查一下实际的运行情况
这里写图片描述

User的代码没有给,他只有一个name属性还有set和get方法,很简单的一个类。

先看xml的变化,最外层的多出了一个layout标签,然后在layout标签中,还多了一个data标签,在TextView中调用了variable 对应的name的对象的属性和方法。

然后看java代码,setContentView被替换成了DataBindingUtil.setContentView,并且返回了一个ViewDataBinding对象,在这个对象中我们调用了setVariable()来对 xml定义的user和listener进行赋值。

看完代码,我们基本上就了解了最基础的知识:

1、使用DataBinding,要在原来的xml最外层嵌套标签。

2、标签中可以定义这个xml到底绑定了哪些东西。其中定义的肯定是个对象类,name是引用的名字,type对应的具体的类的完成包名+类名。

3、在xml中的view使用定义的类中,语法最外层是 @{},如果调用的属性@{ name.filed}, 如果是方法 @{ () -> name.function()}

4、需要替换setContentView,变为DataBindingUtil.setContentView(),来获得能够操作xml中定义的各种内容。

5、在xml中定义的name对象,会生成类似于R文件的BR文件,通过BR.name 就可以找到对应的绑定内容。

深化概念

我们已经基本明白了DataBinding使用的答题步骤,这样非常有利于理解一些具体的概念:

1.ViewDataBinding

一般是DataBindingUtil 调用setContentView(Activity activity,int layoutId)返回的对象,用于对xml绑定的数据进行操作和赋值。

setVariable(int BR.id, Object value)

2、DataBindingUtil

setContentView(Activity activity,int layoutId)

从layout中创建数据绑定类,还有其他的一些api以后会使用到。

总结

我们已经对DataBinding有了一个初步的了解,一开始对于DataBinding听起来怎么高大上的技术也渐渐放下了心中的不安,那这一篇的成果就非常棒了,所以下一篇会对这些基础知识再进行一次丰富。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值