DataBinding(三) — BaseObservable,ObservableField实现数据双向绑定

前言

在之前的文章中,我们讲到了DataBinding加载图片,想了解的可以参看以下文章:
DataBinding(一) — 基本使用
DataBinding(二) — 加载图片
今天让我们来学习下DataBinding的双向数据绑定。

  1. BaseObservable实现数据双向绑定
    1.1 新建Userkotlin上的Parcelable序列化
    1.2 继承BaseObservable实现双向数据绑定
    1.3 DataBinding双向绑定在MainActivity中的使用
    1.4 BaseObservable效果图
  2. ObservableField实现数据双向绑定
    2.1 ObservableField实现数据双向绑定
    2.2 xml中使用变化
    2.3 MainActivity中调用
    2.4 ObservableField效果图

先来波效果图


BaseObservable效果图.gif

ObservableField效果图.gif

一. BaseObservable实现数据双向绑定

1.1 新建 User 类 kotlin 上的 Parcelable 序列化

最开始当然是DataBinding的库引用了,之前讲过,这里不做赘述。
这里我们以名字在EditText中实时变化为例。
新建一个User类,其中有一个属性name。先来看看实体类User如何实现Parcelable序列化。
app_module对应的build.gradle头部的plugins引用中添加Parcelable序列化插件:

plugins {
    id 'kotlin-parcelize' //序列化bean的Parcelable插件
    //其他代码省略
    //...... 
}

然后实体类User类头部加上@Parcelable注解并 继承Parcelable,User代码如下:

package com.ktdemo.entity

import android.os.Parcelable
import kotlinx.parcelize.Parcelize

/**
 * Title:
 * description:
 * autor:pei
 * created on 2023/4/12
 */
@Parcelize
class User() : Parcelable{

    var name :String?=null

    constructor(name:String?) : this() {
        this.name=name
    }

}
1.2 继承BaseObservable实现双向数据绑定

BaseObservabledataBinding一套中的组件,其功能是建立ViewModel间的数据通讯,作用上类似LifeCycle系统中的ViewModel
先建一个UserObservable继承自BaseObservable,并在其中引用User实体类,并做实现双向数据绑定的处理。下面贴出UserObservable代码:

还有 76% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥3.00 继续阅读

推荐阅读更多精彩内容