今天我们来整理一下Android的数据绑定,以往我们绑定代码需要很多的获取值,写值。而出现databind之后,我们就可以很方便的将Bean中的值赋值给页面文件,好了不多说了,直接上代码。
package app.easy.com.demo.bean;
import android.os.Parcel;
import android.os.Parcelable;
/**
* Created by Administrator on 2018/2/6.
*/
public class User{
private int id;
private String userName;
private String userSex;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
}
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<data>
<variable
name="user"
type="app.easy.com.demo.bean.User"></variable>
</data>
<LinearLayout android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@{user.userName}" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@{user.userSex}" />
</LinearLayout>
</layout>
package app.easy.com.demo;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import app.easy.com.demo.bean.User;
import app.easy.com.demo.databinding.DatabindDemoBinding;
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DatabindDemoBinding bindValue= DataBindingUtil.setContentView(this,R.layout.databind_demo);
User uu=new User();
uu.setId(1);
uu.setUserName("digua");
uu.setUserSex("man");
bindValue.setUser(uu);
}
}
通过代码我们看到了,我们的布局文件需要显示的声明对象变量,即我们的布局文件能识别哪些对象,并且我们声明之后会自动生成一个对象,这个对象是布局文件去除特殊符号之后的首字母大写+Binding结尾的对象,我们就可以直接给出对应的值了,是不是很简单。