Android DataBinding——利用数据改变UI,分离你的数据业务逻辑

本文介绍了DataBinding,它是Google官方架构组件的支持库,可将UI组件绑定到数据源。还说明了Android开发者接入方法,阐述了其与MVVM的关系,最后分享了DataBinding的初级和高级应用,如替代findViewById、自定义属性绑定等,并给出Demo代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一部分:DataBinding是什么?

     我来答: 是google官方指导架构篇Architecture Components的一个支持库,借用它可以将UI界面组件绑定到应用的数据源中。

第二部分:  作为Android 开发者我如何接入使用呢? 

     只需一步,在app module的build.gradle下加入如下配置:

android {     ...  

  dataBinding {    

    enabled = true    

} }

拓展:我所理解的mvvm

通常实现Android业务时我们在Activity里书写查找控件、界面交互、网络请求、逻辑业务代码,很快我们写多了发现Activity里代码太多,业务模块复用不便,为此大家开始用MVP,比如将网络请求和业务模块放在Presenter里,后来为我们熟知的Architecture Components推出了很多好用的库,其中有DataBinding,ViewModel,realm,room,lifecycleview,liveData等,后来大家开始使用ViewModel+DataBinding来实现MVVM,ViewModel里主要放置数据(ObservableField,ObservableBoolean,ObservableArrayList),以及一些网络请求,业务逻辑代码。据我使用的经验来说,这个看似很简单,但是如何把握分离的度和恰好的利用来做业务设计不是朝夕的功夫还得多踩坑,但是这样使用起来更利于逻辑的梳理,代码解耦和相似业务代码的复用以及数据共享

第三部分: 快快教我大展伸手吧~~~^o^

一入英文文档深似海,出来只是码路人,要想用得好,还得多实战。 下面就我的理解和实际运用略说一二:

初级应用: 利用DataBinding替代findViewById

初级应用: UI事件绑定(方法引用和用lamda表达式自定义方法调用)

初级应用: include绑定和使用Observable双向绑定

初级应用: 表达式和Observable

高级应用: BindingAdapter为你自定义属性设置绑定方法

@BindingAdapter({"imageUrl", "error"})

public static void loadImage(ImageView view, String url, Drawable error) 

{   

Picasso.get().load(url).error(error).into(view);

}

@BindingAdapter({"imageUrl", "error"})
public static void loadImage(ImageView view, String url, Drawable error) {
  Picasso.get().load(url).error(error).into(view);
}
高级应用: DataBinding双向绑定

 双向绑定使用方法:

 解决双向绑定的死循环

监听双向绑定的属性值变化

高级应用: Recycleview使用DataBinding

附: Demo代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值