我是靠谱客的博主 隐形月饼,最近开发中收集的这篇文章主要介绍安卓-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的变化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复