美文网首页
LiveData 简单使用

LiveData 简单使用

作者: keanbin | 来源:发表于2018-02-13 15:07 被阅读0次

1. 添加相应的库:

直接从官网摘过来https://developer.android.com/topic/libraries/architecture/adding-components.html

a、项目的build.gradle:

b、app 或者module 的build.gradle:

上面这些包含了Lifecycles、LiveData、ViewModel、Room、Paging

如果使用的是java 8 需要用android.arch.lifecycle:common-java8:1.1.0替代android.arch.lifecycle:compiler

2. 简单使用:

创建一个MutableLiveData对象,因为LiveData是抽象类不能直接创建对象,MutableLiveData是LiveData一个非常基本的继承类。

创建一个观察监听器

把观察监听器和被观察者MutableLiveData的对象绑定起来

给被观察者MutableLiveData的对象设置值,值改变了,就会回调上面的观察监听器

3. Transformations.map (转换)的使用

一个LiveData子类对象,监听另一个LiveData子类对象值的变化,然后用一个函数对被监听的LiveData子类对象的变化的值进行加工,然后设置给监听的LiveData子类对象。

创建被监听的LiveData子类对象

创建监听的LiveData子类对象

上面是把被监听的LiveData子类对象( liveData1)的变化的整型数值 转换成一段字符串,然后设置给 liveData2

创建一个 liveData2 观察监听器

把 liveData2 观察监听器和 liveData2 绑定起来

给 liveData1设置值,值改变了,就会回调上面的 liveData2 观察监听器

Transformations.map 涉及到 2 个LiveData 子类对象。

4. Transformations.switchMap 的使用

Transformations.switchMap 与 Transformations.map 基本差不多,只是 Transformations.switchMap 的转换函数是再返回一个 LiveData 子类的对象,所以Transformations.switchMap 涉及到 3 个LiveData 子类对象。

创建被监听的LiveData子类对象

创建监听的LiveData子类对象

创建一个 监听的LiveData子类对象 观察监听器

把观察监听器和 监听的LiveData子类对象 绑定起来

给 被观察者MutableLiveData的对象 设置值,值改变了,就会回调上面的观察监听器

Transformations.switchMap 可以用于http请求场景:

每次http请求都会创建一个 LiveData 对象,但是UI层的不希望每次都去对之前LiveData 对象解绑,再绑定新的LiveData 对象,这时就可以使用Transformations.switchMap,UI层只要一直绑定一个LiveData 对象(如上面的liveData3),不直接绑定 http请求每次创建的 LiveData 对象 (如上面的middleLiveData)

相关文章

网友评论

      本文标题:LiveData 简单使用

      本文链接:https://www.haomeiwen.com/subject/xsbjtftx.html