android mvvm入门

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的入门过程,格式化的东西比较多,需要多练习才能熟悉起来。

发布了58 篇原创文章 · 获赞 10 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_34203714/article/details/102866186