Android的DataBinding在已经内置了,因此只需要在app模块的build.gradle中开启就可以使用了。DataBinding,顾名思义就是数据绑定,可以看到现在的三个组件都与数据有关系,ViewModel数据持有,LiveData数据观察、DataBinding数据绑定。 ① 单向绑定 而DataBinding的绑定有两种方式:单向数据绑定和双向数据绑定。举个例...
创建一个MainViewModel继承自ViewModel importandroidx.lifecycle.MutableLiveData;importandroidx.lifecycle.ViewModel;publicclassMainViewModelextendsViewModel{//LiveData维护一个整型数 NumberprivateMutableLiveData<Integer>Number; public MutableLiveData<Integer>getNumber(){if(Number==null){Number=newMutableLiveData<>();...
packagecom.zyb.databindingtest;importandroidx.lifecycle.MutableLiveData;importandroidx.lifecycle.ViewModel;publicclassMyViewModelextendsViewModel{MutableLiveData<Integer> cnt;publicMutableLiveData<Integer>getCnt(){if(cnt ==null){cnt =newMutableLiveData<>();cnt.setValue(0);}returncnt;}publicvoidadd(intn)...
比如上面我们点击按钮之后还需要手动去给这个textView重新setText。有了这个LiveData,我们就不用每次都给它重新设置值了。 2、做法:在上面这个MyViewModel中做修改: public class MyViewModel extends ViewModel { private MutableLiveData<Integer> number; public MutableLiveData<Integer> getNumber() { if (number ==...
如果您想要在 ViewModel 中使用 LiveData,可以调用SavedStateHandle.getLiveData(),示例如下: // getLiveData 方法会取得一个与 key 相关联的 MutableLiveData // 当与 key 相对应的 value 改变时 MutableLiveData 也会更新。 private val _userId : MutableLiveData<String> = savedStateHandle.getLiveData(USER_KEY...
一、ViewModel + LiveData + DataBinding 核心要点 1、ViewModel 使用要点 ViewModel 架构组件 是 视图 View 与 数据模型 Model 之间 数据交互的 桥梁 ; 传统Android 开发中 , 视图 View 与 数据模型 Model 都在 Activity 中维护 , 导致 二者有很高的耦合度 , 不利于代码维护 ; ...
LiveData:提供了响应式编程的功能,可以让数据在数据源发生变化时自动更新UI。 Room:提供了一个抽象层,可以让开发者方便地访问和管理SQLite数据库。 Navigation:提供了一种简单、一致的方式来处理应用程序的导航。 WorkManager:提供了一种简单、可靠的方式来管理后台任务。 除此之外,Jetpack还包括了诸如Paging、Data Bind...
一、ViewModel + LiveData + DataBinding 核心要点 1、ViewModel 使用要点 2、LiveData 使用要点 3、DataBinding 使用要点 二、ViewModel + LiveData + DataBinding 代码示例 1、ViewModel + LiveData 代码 2、build.gradle 构建脚本 - 启用 DataBinding 3、DataBinding 布局文件 - 配置 ViewModel 类 ...
这里我将一个篮球赛计分的例子来记录ViewModel、LivaData、DataBinding的用法 首先新建一个 MyViewModel 继承于 ViewModel。 package com.shanya.score; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; public class MyViewModel extends ViewModel { private MutableLiveData<Integer> aTeamS...
在Databinding中,ViewModel会持有ObservableField等的数据,View监听ObservableField的数据变化,而当ViewModel中ObservableField数据变化时即会通知UI进行相应更新。在不使用databinding时,就可以通过LiveData起到相同的作用。 3、事件绑定: View层的一些事件,比如onClick事件,OnRefresh事件等等,在事件触发时,通过ReplyCommand的方式,...