我是靠谱客的博主 隐形月饼,最近开发中收集的这篇文章主要介绍安卓-LiveData,让控件感知数据变化创建LiveData对象更新LiveData监听LiveData的变化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用LiveData,当数据发送变化时,自动更新界面

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="34sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="@+id/textView"
        app:layout_constraintStart_toStartOf="@+id/textView"
        app:layout_constraintTop_toBottomOf="@+id/textView" />
</androidx.constraintlayout.widget.ConstraintLayout>

TextView用于显示数据,Button用于更新数据

创建LiveData对象

LiveData是一个抽象类,可使用可变的MutableLiveData

//初始化为0
val liveData = MutableLiveData<Int>(0)

更新LiveData

LiveData 没有公开可用的方法来更新存储的数据。MutableLiveData 类将公开 setValue(T) 和 postValue(T) 方法,如果您需要修改存储在 LiveData 对象中的值,则必须使用这些方法.

setValue(T)用于在主线程中更新数据,postValue(T)用于在子线程中更新数据

//点击button让liveData的值+1
mainBinding.button.setOnClickListener {
    liveData.value = liveData.value?.plus(1)
}

监听LiveData的变化

设置监听后,当liveData.value发生变化时,自动更新textView的值

liveData.observe(this) {
    mainBinding.textView.text = it.toString()
}

 

 

LiveData的好处是,在设置监听后,只需要关心数据的变化,而不用手动去更新控件

最后

以上就是隐形月饼为你收集整理的安卓-LiveData,让控件感知数据变化创建LiveData对象更新LiveData监听LiveData的变化的全部内容,希望文章能够帮你解决安卓-LiveData,让控件感知数据变化创建LiveData对象更新LiveData监听LiveData的变化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部