ViewModel的好搭档--livedata

class MyViewModel extends viewModel {

//传统定义方式,布局Ui无法感应变化
private String phoneInfo=""

LiveData方式,能被Ui感应
private MutableLiveData phoneInfo;

①对外暴露 一个获取的方法

public MutableLiveData getPhoneInfo();

而Ui的刷新,就是
LiveData +DataBinding,这一步,把上一章中,Activity中Ui的刷新的重任,给挑过来了。

注意:
数据变化---》Ui自动更新,
但是Ui变化 不等于 自动更新LiveData。
但是不少人误以为双向绑定。
因为DataBinding 支持一种 Two-way bingding的机制,@={userName}
但是userName必须是MutableLivaData等支持反向通知的类型。
MutableLivaData最终是通过setter和Listner的方式,实现了反向通知。

DataBinding 其实做的工作,就是把LiveData跟布局的Ui元素,一一映射起来。
它通过Layout标签,告诉Activity把布局完全交给我来管理,然后定义 data标签(viewModel类),
让布局跟liveData映射起来。

做完这一步之后,就把传统的findViewById,以及控件的setText的工作全部替换。

posted @ 2026-05-25 21:08  僧cz0727  阅读(1)  评论(0)    收藏  举报