本文共 2270 字,大约阅读时间需要 7 分钟。
数据绑定(DataBinding)是Google在2015年推出的一个用于MVVM架构中的VM实现方案。尽管MVVM(Model-View-ViewModel)框架在开发者中并未普及,DataBinding的使用频率也因此受限。即使在2017年,使用DataBinding仍然面临着兼容性上的小问题,这与其他注解框架如BufferKnife的实现方式有根本差异。
2017年后,DataBinding被几乎完全弃用,直到2020年重新受到关注。经过规整和优化后,仍发现Android Studio对DataBinding的支持不够理想,这种状况让人不禁感叹Google对MVVM框架推广的力度。
在开始使用DataBinding之前,需要了解以下关键点:
使用DataBinding时,由products Shaw.xml文件会自动生成相应的DataBinding类。以下是常见步骤:
@{model.property}
或@{variableName}
。在XML中使用“import”标签引入类名或使用别名(alias)进行管理,避免类名冲突。
以下是一个典型的实战示例:
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; }}
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/