首先Data Binding 是什么鬼,
谷歌官方文档这么说:
This document explains how to use the Data Binding Library to write declarative layouts and minimize the glue code necessary to bind your application logic and layouts.
大概意思:最小化所需的粘合代码绑定应用程序逻辑和布局
1.使用条件:
To use data binding, Android Plugin for Gradle 1.5.0-alpha1 or higher is required
要求Grande Plugin 1.5以上
2.集成步骤
android { .... dataBinding { enabled = true } }3,
想要跟详细的介绍参见
https://developer.android.com/topic/libraries/data-binding/index.html#build_environment
4.下面直接上代码
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user" type="org.gsc.com.databindingdemo.User"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.firstName}"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.lastName}"/> </LinearLayout> </layout>
package org.gsc.com.databindingdemo; /** * Created by Administrator on 2016/9/18. */ public class User { public final String firstName; public final String lastName; public User(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } }
package org.gsc.com.databindingdemo; import android.databinding.DataBindingUtil; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import org.gsc.com.databindingdemo.databinding.TestBinding; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_main); //绑定布局文件 TestBinding binding = DataBindingUtil.setContentView(this, R.layout.test); //初始化数据模型 User user = new User("Guo", "SC"); //绑定UI binding.setUser(user); } }Demo 代码地址 https://github.com/gsc1234567890woshishui/Learn.git