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 简单绑定的更多相关文章

  1. android data binding jetpack V 实现recyclerview 绑定

    android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...

  2. android data binding jetpack VIII BindingConversion

    android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...

  3. android data binding jetpack VII @BindingAdapter

    android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...

  4. android data binding jetpack VI 清理一些概念。BR 运算表达式

    android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...

  5. android data binding jetpack IV 绑定一个方法另一种写法和参数传递

    android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...

  6. android data binding jetpack II 动态数据更新

    android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...

  7. android data binding jetpack III 绑定一个方法

    第三篇 给view绑定一下方法响应. (补充:1.被绑定的方法必须是public的.   1.绑定方法可以用主语法.也可以用以下双冒号方式“::” android:onClick="@{pr ...

  8. android data binding jetpack VIIII 第一坑

    <LinearLayout android:id="@+id/ll_item_home_page_pics" android:layout_width="wrap_ ...

  9. Android Data Binding实战(一)

    在今年Google I/O大会上,Google推出Design Library库的同时也推出了Android Data Binding,那么什么是Data Binding?其名曰数据绑定,使用它我们可 ...

随机推荐

  1. 【Day1】1.了解Python

     视频地址(全部) https://edu.csdn.net/course/detail/26057 课件地址(全部) https://download.csdn.net/download/gentl ...

  2. from表单中 action的后面"" 内如果是 servlet的虚拟路径的话

    <form action="login" method="post"> ====================================== ...

  3. 洛谷 P2939 [USACO09FEB]改造路Revamping Trails

    题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 ...

  4. python 示例代码3

    示例3:Python获取当前环境下默认编码(字符编码demo1.py) 字符编码,python解释器在加载py文件中的代码时,会对内容进行编码(默认ASCII),windows系统默认编码为GBK,U ...

  5. Python——print函数输出对齐问题

    原创声明:本文系博主原创文章,转载及引用请注明出处. 当我们使用print函数时,若指定输出宽度,例如: >>> import math >>> print('|P ...

  6. metapath2vec 笔记

    Homogeneous networks: representative of singular type of nodes and relationships Challenges: multipl ...

  7. pod denied问题

    /Users/xxx/Library/Developer/Xcode/DerivedData/xxx-cdsvdpxrnyrnhshklcylefhdtghq/Build/Intermediates. ...

  8. 微信退款SpringBoot读取resource下的证书

    微信支付退款接口,需要证书双向验证,测试的时候证书暂时放在resource下,上图 起初MyConfig中我是这样,在本机IDE中运行没有问题 但到Linux服务器的docker中运行就IO异常了,查 ...

  9. (十二)zabbix监控redis

    1)agent端配置 安装redis yum install epel-release -y yum install redis -y 配置认证密码 #vim /etc/redis.conf requ ...

  10. OI视角浅谈布隆过滤器

    简要谈及布隆过滤器 Preface 不负责的出题人扔了一道5e5,2M卡内存的题,标算布隆过滤器,然而std自己用std::set 70M碾过去了. 没学OI时候草草看过这个,不过忘得差不多了. 今天 ...