android mvvm入门

mac2026-01-20  8

0.开启mvvm许可

1,书写布局

<layout>包裹,<data>导入对象

<layout 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" > <data> //导入的实体类类型 <variable name="user" type="com.example.model.UserBean" /> </data> // 正常的最外层布局 <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".BindtoActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" //这里是绑定属性的值 android:text="@{user.name}" tools:ignore="MissingConstraints" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.passwd}" tools:ignore="MissingConstraints" /> </android.support.constraint.ConstraintLayout> </layout> * 最外层用<layout>标签嵌套,注意layout的首字母是小写的“l” * <layout>标签的下面紧跟着一个<data>标签,这个标签其实就是让我们进行数据绑定的一个标签 * <data>标签中,包含着<variable>标签,这个标签就是我们将“变量”放置的位置 * <variable>标签里面分别有<type> <name>两个标签,分别来标识变量类型和变量名称 * <type>标签 标识变量类型,比如java.lang.String这就是String类型,com.guaju.mvvm.bean.User 这个就是一个我自定义的一个User类型 * <name>标签 表示的就是我们定义的一个变量名称,这个变量名称我们会在下方的布局和对应的java代码中引用到

2,activity的绑定方法

//注意返回值 是ActivityMainBinding 而不是 ViewDataBinding(这个binding无法绑定数据) //activity_main绑定之后的对象是 ActivityMainBinding 一定是生成规则的对象Binding才可以 ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

并测试绑定名称生成规则

//activity_bindto绑定之后的对象是 ActivityBindtoBinding 一定是生成规则的对象Binding才可以 ActivityBindtoBinding viewDataBinding = DataBindingUtil.setContentView(this, R.layout.activity_bindto); viewDataBinding.setUser(userBean);

3,实体类属性编写

/** * 用户的实体类 */ public class UserBean { //绑定了变化事件的属性 public ObservableField<String> name = new ObservableField<>();

以上就是整个mvvm的入门过程,格式化的东西比较多,需要多练习才能熟悉起来。

最新回复(0)