Android 官方数据绑定框架 Data Binding 简单使用
来源:互联网 发布:python二分法 编辑:程序博客网 时间:2024/05/22 06:35
- 参考资料
- 配置 Data Binding 环境
- 从绑定对象里获取数据的几种方式
- 模拟一个 User 对象
- 修改布局文件
- 在 Activity 里创建User对象并绑定到视图
- 运行查看效果
参考资料
https://developer.android.com/topic/libraries/data-binding/index.html
配置 Data Binding 环境
在需要使用 Data Binding 的 module 里加上如下配置:
android { .... dataBinding { enabled = true }}
若 module 所依赖的包使用了 Data Binding,module 里也仍然需要加上。
设置好之后,需要使用 gradle 同步项目,使项目加载依赖包。
从绑定对象里获取数据的几种方式
- 直接获取 public 修饰的变量的值,如下面的
firstName
- 从属性的 getter 方法获取,如下面的
lastName
- 直接以字段名为名字的方法获取,如下面的
nativePlace
模拟一个 User
对象
首先要有对象来提供绑定才行,所以这里先建好一个用于测试的User
类。
其中有 3 个字段,用于测试上面描述的获取数据的几种方式是否有效。
package com.zjq.databindingpractice;/** * 模拟用户对象 * Created by softwater on 2017/4/19. * Modified by softwater on 2017/4/19. */public class User { /** * 姓,不提供 getter、setter 方法 */ public String firstName; /** * 名,提供标准的 getter、setter 方法 */ private String lastName; /** * 籍贯,提供标准的 setter 方法,getter 方法为 {@link #nativePlace()} */ private String nativePlace; public void setLastName(String lastName) { this.lastName = lastName; } public String getLastName() { return this.lastName; } public void setNativePlace(String nativePlace) { this.nativePlace = nativePlace; } public String nativePlace() { return nativePlace; }}
修改布局文件
使用 Data Binding 的布局文件有一点不同,就是最外层的标签是<layout>
,不再是以前的各种ViewGroup
。<layout>
标签里使用<data>
标签来指定界面绑定的数据对象。格式如下:
<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user" type="com.zjq.databindingpractice.User" /> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.firstName}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.lastName}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.nativePlace}" /> </LinearLayout></layout>
其中
<data><variable name="user" type="com.zjq.databindingpractice.User"/></data>
这样就将com.zjq.databindingpractice.User
对象绑定到了当前界面之中,并设置 name
属性为 user。
之后就可以使用@{}
语法直接获取值设置到对应的 View 中。
此时绑定到界面的具体对象是不确定的,因为对象都还没有实例化,都还没有为 User 赋值,所以需要在代码里创建对象,并赋值,然后传递给界面。
在 Activity 里创建User
对象并绑定到视图
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); User user = new User(); user.firstName = "王"; user.setLastName("菲菲"); user.setLastName("背景"); binding.setUser(user); }
上面的代码是在 Activity 里加载的,若界面使用了 Data Binding,就不能使用以前的setContentView()
方法了,而要使用DataBindingUtil.setContentView(this, R.layout.activity_main);
,这里的返回值是ActivityMainBinding
,这个类是根据 layout 的文件名来的,就在 layout 文件名后面加上 Binding
。如果编辑器提示找不到ActivityMainBinding
类,请 sync 一下代码,或者 build 一次。
有了 User
对象之后,需要使用binding.setUser(user);
方法设置进去。
运行查看效果
- Android 官方数据绑定框架 Data Binding 简单使用
- 来自官方的Android数据绑定(Data Binding)框架②
- Data Binding 的使用之一:简单的数据绑定
- Data Binding Library数据绑定框架
- Android Data Binding 数据绑定技术导读
- Android数据绑定Data Binding初体验
- Android Data Binding(数据绑定)用户指南
- Android Data Binding(数据绑定)用户指南
- Android 数据绑定(Data Binding)详解
- android数据绑定之Data Binding
- 数据绑定库Data Binding的使用
- 来自官方的Android数据绑定(Data Binding)框架② Read more: http://blog.chengyunfeng.com/?p=735#ixzz4HkFGb2dc
- Google Data Binding Library 谷歌官方数据绑定库(三)在引用布局中使用数据绑定
- 数据绑定(Data Binding)
- 数据绑定(data binding)
- android开发利器Data Binding简介和简单使用(已支持双向绑定)
- Google Data Binding Library 谷歌官方数据绑定库(二) 自定义绑定类名
- Google Data Binding Library 谷歌官方数据绑定库(六)创建的绑定类
- openMP编程(上篇)之指令和锁
- 【IMWeb训练营作业】---Vue2.0 学习(一)
- DHT12温湿度传感器STM32驱动IIC
- C++的new
- bzoj3771 Triple
- Android 官方数据绑定框架 Data Binding 简单使用
- 使用Calendar创建可视化日历
- 20170419 关于绘制余弦曲线和直线的一些问题
- js语句出现不能建立Date()
- java 基于TCP的Socket网络通信
- c#写winform
- UVALive
- CentOS---网络配置详解
- 代做安卓毕设,代做android毕设!!!!