class MainActivity : DataBindingBaseActivity<ActivityMainBinding, MainViewModel>(
R.layout.activity_main, BR.viewModel
) {
// 除了主 vm,还可以有其他的 vm,来自 fragment-ktx 的 viewModels 扩展,可快速一行代码创建实例
private val mTestViewModel by viewModels()
override fun initData() {
super.initData()
// 关联
mBinding.setVariable(BR.testViewModel, mTestViewModel)
// 或者是这样:
// mBinding.testViewModel = mTestViewModel
}
}
xml 如下:
<layout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
…
上面已经将 V 和 VM 结合起来了,为啥叫 MVVM 框架呢?因为 M 是 Model 数据层,V 是 View 视图层,VM 是 ViewModel 业务逻辑层。
2、没有 DataBinding 前的世界
在没有 DataBinding 前,也许你的代码是这样的,我们举个例子:执行一个耗时操作后将结果显示在界面上。
<?xml version="1.0" encoding="utf-8"?>
本文详细介绍了Android DataBinding框架的使用,通过对比没有DataBinding时的代码,展示了DataBinding如何简化MVVM架构中的数据绑定。讲解了如何在XML中设置双向数据绑定,并指出DataBinding自动生成的代码如何实现对LiveData的自动观察,从而实现视图和数据的自动更新,降低了手动处理观察者的复杂性。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



