【Jetpack系列】LiveData简单使用(Kotlin)

目录

一、作用

二、使用方法

1.定义LiveData

2.观察LiveData数据

3.修改LiveData数据

三、ViewModel+LiveData实现Fragment通信

1.创建ViewModel

2.创建Fragment

3.Fragment添加至同一Activity 

4.Fragment中监听LiveData数据并添加SeekBar监听


一、作用

LiveData是一个可被观察到数据容器类,它将数据包装起来,使数据成为被观察者,当数据发生变化时,观察者能够获得通知。

二、使用方法

1.定义LiveData

lateinit var liveData: MutableLiveData<Int>

2.观察LiveData数据

通过observe()方法观察LiveData数据变化,并在回调中实现数据展示

        liveData.observe(this, {
            findViewById<TextView>(R.id.tv).text = it.toString()
        })

3.修改LiveData数据

通过setValue()postValue()方式实现数据修改,postValue方法用在非UI线程中,setValue方法用在UI线程

        liveData.value = 0
        liveData.postValue(0)

此Demo是在上一篇文章《【Jetpack系列】ViewModel(Kotlin)》中ViewModel的基础上,将接口回调方式更新并展示数据改为用LiveData实现同样的功能

完整代码

TimerWithLiveDataViewModel

class TimerWithLiveDataViewModel : ViewModel() {

    var timer: Timer? = null
    var currentSecond = MutableLiveData<Int>()

    fun startTime() {
        if (timer == null) {
            timer = Timer()
            currentSecond.value = 0
            val timerTask = object : TimerTask() {
                override fun run() {
                    currentSecond.postValue(currentSecond.value!! + 1)
                }
            }
            timer!!.schedule(timerTask, 0, 1000)
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值