实例代码(基本用法)


这时,新建一个对象(PeopleBean.java)重写构造方法以及Get、Set方法,如下:

package com.lkdot.mvvm.bean;
public class PeopleBean {
private String name;
private int age;
public PeopleBean(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return “PeopleBean{” +
“name='” + name + ‘’’ +
“, age=” + age +
‘}’;
}
}

在布局文件中,刚才快捷键生成的data标签下,加入以下代码:

name指的是标签名

type指的是类的路径(也就是新建的 PeopleBean.java 的路径)

<variable
name=“peopleBean”
type=“com.lkdot.mvvm.bean.PeopleBean” />
还有一种适合一处多用的方法,如下,直接用import标签即可
<variable
name=“data”
type=“PeopleBean” />
<variable
name=“data2”
type=“PeopleBean” />
<variable
name=“data3”
type=“PeopleBean” />

但是,这样有时候避免不了import导入不同路径而相同的类名,此时呢,就要在import标签中用到alias属性了,就比如以下情况

alias使用方法如下
<import
alias=“MainBean”
type=“com.lkdot.mvvm.bean2.PeopleBean” />
<variable
name=“data”
type=“PeopleBean” /> 
 
<variable
name=“data2”
type=“MainBean” /> 
 
<variable
name=“data3”
type=“MainBean” />


这里呢,要实现往将PeopleBean中的信息展示在TextView当中,如下写法:

但是PeopleBean中的age是int类型,此时就要使用String.valueOf(data.age)转成String类型,否则会报错。

注意看TextView标签中android:text

<?xml version="1.0" encoding="utf-8"?> 
<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”>
<variable
name=“data”
type=“PeopleBean” />
<android.support.constraint.ConstraintLayout
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:background=“#FFFFFF”
tools:context=“.MainActivity”>
<TextView
android:id=“@+id/textView2”
android:layout_width=“match_parent”
android:layout_height=“100dp”
android:background=“#03A9F4”
android:gravity=“center”
android:text=“@{data.name}”
android:textColor=“#FFFFFF”
android:textStyle=“bold”
tools:ignore=“MissingConstraints” />
<TextView
android:layout_width=“match_parent”
android:layout_height=“100dp”
android:layout_marginTop=“8dp”
android:background=“#03A9F4”
android:gravity=“center”
android:text=“@{String.valueOf(data.age)}”
android:textColor=“#FFFFFF”
android:textStyle=“bold”
app:layout_constraintTop_toBottomOf=“@+id/textView2”
tools:ignore=“MissingConstraints”
tools:layout_editor_absoluteX=“0dp” />
</android.support.constraint.ConstraintLayout>

这样布局这边就算完事了,但是呢PeopleBean少了点什么呢,没错,就是他的信息,现在PeopleBean中所有的信息都还是null呢!

接下来就是MainActivity.java

这时候用到了DataBindingUtil,导入即可

package com.lkdot.mvvm;
import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;