DataBinding variable变量的声明与使用
来源:互联网 发布:网络音乐黑名单 百度云 编辑:程序博客网 时间:2024/06/05 01:53
variable变量的声明
databinding 对应的根布局是以<layout></layout> 标签开始的,如果在布局中的控件需要应用数据填充,你需要定义数据和数据变量
variable 标签就是约定数据的引用对象
语法为<variable name="变量名" type="类型"/>
如:
<data> <variable name="user" type="com.xuan.asange.databindingdemo.User" /> </data>
还可以用 <import> 标签来引入数据类型
如:
<data> <import type="com.xuan.asange.databindingdemo.User" /> <variable name="user" type="User" /> </data>
而对于java.lang.*包下面的所有类,不需要显示导入,编译器默认导入,直接写就好
如:
<data> <variable name="e" type="Exception" /> <variable name="s" type="String" /> </data>
variable 变量的使用
语法@{变量名或者对象的属性 或者逻辑运算}
如:
<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <import type="com.xuan.asange.databindingdemo.User" /> <variable name="user" type="User" /> <variable name="s" type="String" /> <variable name="isMan" type="Boolean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.name}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf(user.age)}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{s}" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="@{isMan}" /> </LinearLayout></layout>
绑定数据
上面布局文件这样虽然引用了,但是并未填充数据,数据的刷新交给databinding
DataBindingUtil.setContentView( this, R.layout.activity_main);给activity加载布局,并建立连接,返回对应xml的binding对象 名字趋同与对应的activity
如:
biding对象提供对应的数据填充方法(setXXX,这xxx对应在布局文件中声明的变量),只要执行这个方法,就会刷新UI
如:
ActivityMainBinding binding = DataBindingUtil.setContentView( this, R.layout.activity_main); binding.setS("这是个字符串"); binding.setIsMan(true); User user = new User("阿三哥", 27); binding.setUser(user);
这样就加载布局并刷新UI,看看效果吧
静态变量与静态方法的使用
如使用app的版本名称
<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <import type="com.xuan.asange.databindingdemo.BuildConfig" /> </data> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{BuildConfig.VERSION_NAME}" /></layout>
静态方法的使用
package com.xuan.asange.databindingdemo;/** * Description * Company * author youxuan E-mail:xuanyouwu@163.com * date createTime:16/12/14 * version */public class StringUtils { public static String getVersionName() { return BuildConfig.VERSION_NAME; }}
<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <import type="com.xuan.asange.databindingdemo.StringUtils" /> </data> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{StringUtils.getVersionName()}" /></layout>
0 0
- DataBinding variable变量的声明与使用
- 变量声明与使用
- 【databinding】与元素类型 "variable" 相关联的 "type" 属性值不能包含 '<' 字符
- php学习笔记(一)变量的声明与使用
- 006_java中变量的声明与使用
- 变量的定义与声明
- 变量的定义与声明
- 变量的声明与定义
- 变量的声明与定义
- 变量的声明与定义
- 变量的定义与声明
- 变量的声明与定义
- 变量的定义与声明
- 变量的声明与定义
- 变量的声明与赋值
- 变量的声明与定义
- 函数/变量的声明、使用
- 定义变量 与 声明变量 的区别
- 创建后台服务
- leetcode--House Robber II
- 自定义布局控件
- Impala权限管理机制
- C++入门基础篇学习手记: 统计在输入中每个值连续出现的次数
- DataBinding variable变量的声明与使用
- Android给空白包签名
- tomcat
- Scientific Toolworks Understand 开源代码查看神器
- c标签 总结
- 人脸3D重建:Cascaded Regressor
- map 集合基础
- SPA (单页应用程序)
- 踩过Local Socket的一些坑--C与JAVA的内部通信