博客
关于我
Andriod进阶之路 - DataBinding的简单使用
阅读量:640 次
发布时间: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/

你可能感兴趣的文章
【蓝桥杯】 java 大学c组 省赛 1、隔行变色
查看>>
BIM轻量化——浏览器展示 | 利用unity
查看>>
超市账单管理系统
查看>>
Springboot实现热部署
查看>>
composer 介绍、安装及基本使用方法
查看>>
PHP 的 ::class 用法
查看>>
Python学习之列表用法
查看>>
升级qiime2
查看>>
Docker 阿里云CentOS 安装
查看>>
Bootstrap提交表单基本组件
查看>>
需求分析
查看>>
查找单链表中倒数第k个节点
查看>>
linux中rm和rmdir的区别
查看>>
JUC源码分析-序章
查看>>
面试高频 C++ 知识总结
查看>>
小易的升级之路,找出字符串中第一个只出现一次的字符
查看>>
创建组出现错误:对COM组件的调用返回了错误 HRESULT E_FAIL。小敏
查看>>
数组去重的常用的几种方法
查看>>
Linux yum提示Loaded plugins错误的解决方法
查看>>
MySQL常见问题解决方案
查看>>