android data binding jetpack I 环境配置 model-view 简单绑定
android data binding jetpack VIII BindingConversion
android data binding jetpack VII @BindingAdapter
android data binding jetpack V 实现recyclerview 绑定
android data binding jetpack IV 绑定一个方法另一种写法和参数传递
android data binding jetpack III 绑定一个方法
android data binding jetpack II 动态数据更新
android data binding jetpack I 环境配置 model-view 简单绑定
第一步:baidu jetpack
第二步:准备
1.Gradle 插件版本不低于 1.5.0-alpha1:classpath 'com.android.tools.build:gradle:1.5.0'
(Module)的 build.gradle:
加配置:
dataBinding {
enabled true
}
第三步:
创建布局文件
使用 Data Binding 之后,xml 的布局文件就不再用于单纯地展示 UI 元素,还需要定义 UI 元素用到的变量。所以,它的根节点不再是一个 ViewGroup
,而是变成了 layout
,并且新增了一个节点 data
。
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
</data>
<!--原先的根节点(Root Element)-->
<LinearLayout>
....
</LinearLayout>
</layout>
将文件放在layout文件夹。如下图。
布局中多了<data>节点。data
节点的作用就像一个桥梁,搭建了 View 和 Model 之间的通路。绑定数据M2V
第四步:了解<data>节点
在代码里解释:
先建一个类备用
定义一个变量
java.lang.*
包中的类会被自动导入,可以直接使用,例如要定义一个 String
类型的变量:<variable name="firstName" type="String" />
第五步:
同步一下项目。build一下。
根据说明项目会生成下面这个类。
打开这个类是这样的
里面有布局元素和刚才定义的变量。
第六步:
在使用的activity类里声明绑定类实例变量,修改设置视图:
private ActivityMainBinding mBinding;
做完上面两步。但是类
ActivityMainBinding 编辑器不认识。不能自动导入。rebuild、clean都不管用。怎么办。baidu也没给出办法。
试了一下,可以手动导入。直接输入:
import com.ht.jetpack.databinding.ActivityMainBinding;
嘿嘿。没问题。项目可以编译通过了。又完成一步。
到此binding的环境差不多了可用了。 其它知识点:
除了使用框架自动生成的 ActivityBasicBinding
,我们也可以通过如下方式自定义类名。
<data class="com.example.CustomBinding">
</data>
注意
ActivityBasicBinding
类是自动生成的,所有的 set
方法也是根据 variable
名称生成的。例如,我们定义了两个变量。
<data>
<variable name="firstName" type="String" />
<variable name="lastName" type="String" />
</data>
那么就会生成对应的两个 set 方法。
setFirstName(String firstName);
setLastName(String lastName);
第七步:绑定数据。
把textview text 与user 的name变量绑定。
语法是@{}。语法可以当一大块去学习。这里先试一试。
通过这个代码,告诉textview的text数据来源是user 的name。两者绑定起来。
然后在activity里做如下操作:
生成一个User对象。并把他给绑定器。
我们运行起来看一下。
文字出来了,跟textview绑在了一起。至此最简单的绑定过程搞定了。
android data binding jetpack I 环境配置 model-view 简单绑定的更多相关文章
- android data binding jetpack V 实现recyclerview 绑定
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- android data binding jetpack VIII BindingConversion
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- android data binding jetpack VII @BindingAdapter
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- android data binding jetpack VI 清理一些概念。BR 运算表达式
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- android data binding jetpack IV 绑定一个方法另一种写法和参数传递
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- android data binding jetpack II 动态数据更新
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- android data binding jetpack III 绑定一个方法
第三篇 给view绑定一下方法响应. (补充:1.被绑定的方法必须是public的. 1.绑定方法可以用主语法.也可以用以下双冒号方式“::” android:onClick="@{pr ...
- android data binding jetpack VIIII 第一坑
<LinearLayout android:id="@+id/ll_item_home_page_pics" android:layout_width="wrap_ ...
- Android Data Binding实战(一)
在今年Google I/O大会上,Google推出Design Library库的同时也推出了Android Data Binding,那么什么是Data Binding?其名曰数据绑定,使用它我们可 ...
随机推荐
- idea tomcat 乱码问题的解决及相关设置
问题,在idea中出现乱码问题,以前没有的,好像在设置系统代码为utf8之后就出现了,于是尝试了一系列办法,希望这些办法对您有帮助. 先看一下乱码的样式. 设置办法 1.在tomcat Server中 ...
- shell 中执行Oracle查询和执行存储过程
[oracle@master2 test]$ more b.sh #!/bin/sh #数据库地址 ip=192.168.1.250 port sid=orcl username=c##scott p ...
- SVN主从备份
SVN主从备份 两套环境:192.168.67.63(主SVN) 192.168.67.60(从SVN) 1.主环境上已经装好SVN并且存在数据仓库/home/svndata在从环境上,新建一/hom ...
- Tomcat项目自动部署脚本
一般情况下使用的Linux环境都是加固的,root路径只有超级管理员权限才能进入.我们新建一个自己的用户,在/home下会有一个用户目录,传输war包都放在这个目录下,此时不动webapps文件下的内 ...
- IPC之ipc_sysctl.c源码解读
// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (C) 2007 * * Author: Eric Biederman <ebie ...
- BaseAdapter的使用与优化
1.逗比式 //逗比式............................................ //加载布局文件 //将xml文件转化为view,获取到view//由于我们只需要将XM ...
- Beta冲刺——星期四
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 飞猪们 这个作业的目标 剩余任务预估,分配任务(开发,测试等).按要求提交当天冲刺报告. ...
- golang-vue实现微信小程序分享到朋友圈
最近涉及到微信小程序分享到朋友圈,不知道微信为什么不直接接口分享,咱也不敢佛,咱也不敢问,只能百度问度娘,看官方文档,网上的一些分享五花八门,每一个重点的,所以整理了一下到底怎样生成二维码分享图片才是 ...
- 我遇到的Echarts 最大值不显示&平均值不正常
用Echarts做图表的时候,遇到最大值不显示和平均值不正常的问题,如图: 找了半天,原来是X轴6个坐标有7个数据,只是最后那个数据没有显示出来,而且还是最大的,无语. 加上第七个坐标之后,就显示正常 ...
- Typescript玩转设计模式 之 创建型模式
作者简介 joey 蚂蚁金服·数据体验技术团队 前言 我们团队的工作是用单页面应用的方式实现web工具.涉及到数万到十数万行的前端代码的管理,而且项目周期长达数年. 怎么样很好地管理好这种量级的前端代 ...