DataBinding(三) — BaseObservable,

2023-06-11  本文已影响0人  奔跑的佩恩

前言

在之前的文章中,我们讲到了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代码:

上一篇 下一篇

猜你喜欢

热点阅读