一般来说我们会在 ViewModel 中创建 Livedata 对象,保证app配置变更时,数据不会丢失,然后再 Activity/Fragment 的 onCreate 中注册 Livedata 监听(因为在 onStart 和 onResume 中进行监听可能会有冗余调用) 基础使用流程: 1.创建一个实例LiveData来保存某种类型的数据。一般在你创建的ViewModel类中完成 classMainViewMo...
myViewModel = ViewModelProvider(this,ViewModelProvider.AndroidViewModelFactory(application)).get(MyViewModel::class.java) 可以看到TextView设置的数值即为路径 进阶用法 由于之前提及到ViewModel实际是单例模式的,且生命周期与Activity独立,所以可以使用ViewModel进行Activity和Fragment之间或Fragment之间的数据共享 LiveData ...
//ViewModelStoreOwner是个接口只有一个方法getViewModelStore,由Activity/Fragment实现(详见3.2.2) public ViewModelProvider(@NonNull ViewModelStoreOwner owner, @NonNull Factory factory) { this(owner.getViewModelStore(), factory); } //最终会调用的该构造方法,ViewModelStore封装了HashMap集合保存ViewModel对象 //...
/*** 订阅 ViewModel,mycount是一个LiveData类型 可以观察* */viewModel.mycount.observe(this@MainActivity){countTv.text=viewModel.mycount.value.toString()}// LiveData onchange会自动感应生命周期 不需要手动// viewModel.mycount.observe(this, object : Observer<Int> {// override fun onChanged(t: Int?
ViewModel的基本使用 在使用LiveData之前我们需要先自定义自己的ViewModel视图模型. class MainVM : ViewModel() {} 1. 然后在MainActivity.kt中构建它, 这里介绍两种方式。 方式一, 通过ViewModelProvider构建: private lateinit var mainVm: MainVM override fun onCreate(savedInstanceState: Bundle?) { ...
原文地址:Jetpack架构组件学习(2)——ViewModel和Livedata使用 | Stars-One的杂货小窝 Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel 个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源 ...
viewModel.data.observe(this, Observer { myData -> // Update UI with myData }) viewModel.fetchData() } } 优势 生命周期感知:LiveData 可以感知 Activity 或 Fragment 的生命周期,只在活跃状态下更新 UI,避免内存泄漏和不必要的更新。 解耦:Repository 模式将数据操作逻辑与 UI 层分离,使代码更清晰、...
一般来说我们会在 ViewModel 中创建 Livedata 对象,保证app配置变更时,数据不会丢失,然后再 Activity/Fragment 的 onCreate 中注册 Livedata 监听(因为在 onStart 和 onResume 中进行监听可能会有冗余调用) 基础使用流程: 1.创建一个实例LiveData来保存某种类型的数据。一般在你创建的ViewModel类中完成 ...
主要思想就是用到了观察者模式思想,让观察者和被观察者解耦,同时还能感知到数据的变化,所以一般被用到ViewModel中,ViewModel负责触发数据的更新,更新会通知到LiveData,然后LiveData再通知活跃状态的观察者。 varliveData=MutableLiveData<String>() liveData.observe(this, object : Observer<String> { ...
LiveData和viewModel是Google大佬新推出的开发框架jetpack中的两个组件,对应的是MVVM开发模式。本身来说LiveData和viewModel这两个东西之前也有个人的实现,只不过现在谷歌把这俩组件官方化了,消除差异。(Google教我写代码) 概念这些网上一搜一大把的,这里只是入门一下这两个东西,把最基本的使用说一说,毕竟东西要会用了...