今天我们来整理一下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结尾的对象,我们就可以直接给出对应的值了,是不是很简单。