步骤
mvvm
1、
2、
3、
在布局文件中声明
在Activity中初始化
在布局文件中使用
ViewModel中实现getData方法
3、
再创建一个构造器,将Binding对象传值过来,可以调用输入的内容
在viewModel中直接使用dataBinding来操作,这样不是很好
改进:
1、将输入框与viewModel.userInput绑定,并且实现双向绑定,
android:text="@={viewModel.userInput}"
2在viewModel中提供userInput变量
所以在使用的时候,不需要使用dataBinding获取userInput,直接使用userInput变量
有时候,有些操作需要在Activity中完成,实现方式很多
1、借助三方库,EventBus/RxBus,但不够好
2、建议使用LiveData+ViewModel的形式
使用MVVM实现需求步骤:
1. 提供View,ViewModel以及Model三层
2. 将布局修改为DataBinding布局
3. View与ViewModel之间通过DataBinding进行通信
4. 获取数据并展示在界面上
使用MVM实现需求
LiveData + ViewModel
View层:Activity和Layout布局视图文件。
Model:获取数据层。
View与ViewModel通过DataBinding进行通信。
使用MVVM需要实现以下步骤:
新建MVVMViewModel对象,继承BaseObservable。
持有MVVMModel数据对象。
改进DataBinding,实现EditText双向绑定ViewModel里面的userInput字段(或对象)
改进ViewModel,提供userInput字段,实现get和set方法并添加@Bindable注解和添加notifyPropertyChange(BR.userInput)方法。
使用MVVM实现需求
MVVM is similar to MVP
View layer from "Activity" change to "layout"
If ViewMode to use Activity,
LiveData + ViewModel
mvvm
MVVM框架实现需求示意图。
使用MVVM 实现需求
mvvm
v层跟mvp中v层是一个意思代表Activity、Fragment
v↔vm↔m