Adroid studio 2.0的出现也让Data Binding逐渐出现在人们视线...来和大家交流一下,也给自己总结一下。
首先需要在build文件中添加如下配置内容:
android {
// 添加配置
dataBinding {
enabled = true
}
}
写DataBinding类型的layout布局文件:
根节点为layout,需要配置节点 此布局为data_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="user"
type="com.xin.databindingdemo.User"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="@{user.name}"/>
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="@{String.valueOf(user.age)}"/>
</LinearLayout>
</layout>
其中 type=”com.xin.databindingdemo.User”为定义的User类,定义如下:
package com.xin.databindingdemo;
/**
* Created by xin on 2016/4/26 15:09.
*/
public class User {
public final String name;
public final int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
在MainActivity中使用DataBing布局实现:
package com.xin.databindingdemo;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.xin.databindingdemo.databinding.DataLayoutBinding;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataLayoutBinding binding = DataBindingUtil.setContentView(this, R.layout.data_layout);
User user = new User("blythe", 11);
binding.setUser(user);
}
}
DataLayoutBinding 这个字段是与你的布局文件名称相同的,(data_layout.xml)
运行实现的效果就会将你赋值的用户名和年龄就会在界面上显示出来。