MVVM模式中数据的双向绑定的实现

内容导读

本文介绍了如何在MVVM模式中实现数据的双向绑定,主要分为以下4个步骤:

第1步:在build.gradle中启用数据绑定
第2步:创建支持数据绑定的实体类
第3步:在布局文件中配置数据绑定
第4步:在Activity中配置数据绑定

操作步骤

第1步:在build.gradle中启用数据绑定

在Module的build.gradle文件中添加数据绑定配置:dataBinding { enabled = true },如下(注意位置):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.haoxueren.mvvmdemo"
        ...
    }
    buildTypes {
        ...
    }

    dataBinding {
        enabled = true // enable dataBinding
    }
}

dependencies {
    ...
}

第2步:创建支持数据绑定的实体类

注意:原来属性的类型现在成了ObservableField的泛型类型。

import android.databinding.ObservableField;

public class Person {

    public ObservableField name = new ObservableField<>();

    public ObservableField age = new ObservableField<>();
}

第3步:在布局文件中配置数据绑定

在布局文件中添加标签,用于指定当前布局所要绑定的实体类(type)以及实体类名(name):


  

改造后的布局文件如下:




    
    
        
    

    

        

    


第4步:在Activity中配置数据绑定

  1. 使用DataBindingUtil#setContentView()代替Activity#setContentView()
  2. 调用binding.setPerson(person)关联数据,代码如下:
public class MainActivity extends Activity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding binding = DataBindingUtil
                .setContentView(this, R.layout.activity_main);
        Person person = new Person();
        person.name.set("haoxueren");
        binding.setPerson(person);
    }
}

至此,我们已经完成了MVVM模式中数据双向绑定的所有配置,此时,无论是实体对象还是UI控件中,任意一方的值改变均会同步给另一方。

总结

本文为大家介绍了MVVM中实现双向数据绑定的一种方式。

示例代码:https://github.com/haoxueren/MVVMDemo

你可能感兴趣的:(MVVM模式中数据的双向绑定的实现)