博客
关于我
Andriod进阶之路 - DataBinding的简单使用
阅读量:641 次
发布时间:2019-03-15

本文共 2270 字,大约阅读时间需要 7 分钟。

数据绑定(DataBinding)是Google在2015年推出的一个用于MVVM架构中的VM实现方案。尽管MVVM(Model-View-ViewModel)框架在开发者中并未普及,DataBinding的使用频率也因此受限。即使在2017年,使用DataBinding仍然面临着兼容性上的小问题,这与其他注解框架如BufferKnife的实现方式有根本差异。

2017年后,DataBinding被几乎完全弃用,直到2020年重新受到关注。经过规整和优化后,仍发现Android Studio对DataBinding的支持不够理想,这种状况让人不禁感叹Google对MVVM框架推广的力度。

1.cratch Understanding

在开始使用DataBinding之前,需要了解以下关键点:

  • 布局文件:最外层布局文件需以“layout”结尾(小写),对视图层级未造成影响。
  • 在XML中声明数据源:通过“data”标签将数据模型和变量与UI绑定。

2. DataBinding in XML

使用DataBinding时,由products Shaw.xml文件会自动生成相应的DataBinding类。以下是常见步骤:

  • 变量声明:即“variable”标签,需指定名称(见名知意)和类型。模型引用需使用@{model.property}@{variableName}
  • 模型类别:在“data”标签下使用“variable”标签声明模型,要明确指定包名和类名。

3. Import Statements

在XML中使用“import”标签引入类名或使用别名(alias)进行管理,避免类名冲突。

4. Real-World Practice

以下是一个典型的实战示例:

模型类

package com.example.dataBinding.bean;public class Product {    public String name;     public String introduce;    public Product(String name, String introduce) {        this.name = name;        this.introduce = introduce;    }    public Product() {}     public String getName() { return name; }    public void setName(String name) { this.name = name; }    public String getIntroduce() { return introduce; }    public void setIntroduce(String introduce) { this.introduce = introduce; }}

XML布局文件

主活动类

package com.example.dataBinding;import android.databinding.DataBindingUtil;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.example.dataBinding.bean.Product;import com.example.dataBinding.databinding.MainDataBind;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        ActivityMainDataBind mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);        Product product = new Product();        product.setName("蛋糕");        product.setIntroduce("香味诱人");        mBinding.setProductModel(product);        mBinding.setSpeciality("非模型属性,可自由赋值");    }}

如需进一步探索,可以尝试将模型与工具类结合使用,例如:

通过上述配置,开发者可以实现数据绑定,提升应用程序的用户体验。然而,反馈显示Android Studio对DataBinding的支持仍不够理想,这也是MVVM推广遇到的现实挑战。

转载地址:http://hwglz.baihongyu.com/

你可能感兴趣的文章
火焰纹章系列作历史
查看>>
bat中rar压缩命令
查看>>
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
查看>>
[日常] Go语言圣经-并发的非阻塞缓存
查看>>
[PHP] 工厂模式的日常使用
查看>>
[PHP] 控制反转依赖注入的日常使用
查看>>
[PHP] try catch在日常中的使用
查看>>
[Linux] 进程间通信
查看>>
[PHP] error_reporting(0)可以屏蔽Fatal error错误
查看>>
[PHP] 解决php中上传大文件的错误
查看>>
[Linux] 使用awk比较两个文件的内容
查看>>
[Git] 彻底删除github上的某个文件以及他的提交历史
查看>>
[Go] gin框架渲染html字符串
查看>>
[js] js中的闭包以及特点
查看>>
[操作系统]内存连续分配管理方式
查看>>
[Go] json.Unmarshal()解析后存储的结构体定义
查看>>
[PHP]PHP不支持方法重载和只支持方法覆盖
查看>>
[Go] 获取Go二进制文件的真正执行路径os.Args
查看>>
java Map
查看>>
scala Tuple入门到熟悉
查看>>