android jetpack 简单livedata和viewmodel
16lz
2021-01-24
自己复习
app build中添加
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
自定义类继承viewmodel 其中存储livedata对象
class MyViewModel : ViewModel(){ /** * 通过懒加载new一个mutablelivedata对象 * livedata是一个抽象类 muteablelivedata是它的实现类 * 他们之间的关系类似于list和arraylist * 这里的name 说白了就是一个个listdatta类型的string * 我们只是借助了livedata的特性,本质上还是string */ val name: MutableLiveDataby lazy { MutableLiveData () }}
livedata自带生命周期检测当生命周期结束了就不执行方法了,可以这样理解。
在activity中获取model对象
val model = ViewModelProvider.NewInstanceFactory().create(MyViewModel::class.java)
model元素中进行监听
model.name.observe(this, Observer{ it -> // update UI Log.i(TAG,"=====it$it") textView2.text = it})
改编model中对象的值或者用postvalue改变值,界面自动更改
model.name.value = "123"\ //线程中用post Thread(Runnable { model.name.postValue("456") }).start()
更多相关文章
- android基础面试
- Android剪切板用法
- Android实现计时与倒计时的5种方法
- Android(安卓)Fragment 优化与切换
- android 使用现成做get请求
- 你真的会用Android的Dialog吗?由一个Exception想到的
- 【Android(安卓)开发教程】Fragment的生命周期
- [原创]Android(安卓)init.rc文件解析过程详解(二)
- 工作总结