Android 6.0 数据绑定之DataBinding(一)

来源:互联网 发布:北京地铁软件 编辑:程序博客网 时间:2024/06/05 10:51

DataBinding简单介绍:
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.

The Data Binding Library offers both flexibility and broad compatibility — it’s a support library, so you can use it with all Android platform versions back to Android 2.1 (API level 7+).

To use data binding, Android Plugin for Gradle 1.5.0-alpha1 or higher is required
这是必须条件
(1)可以兼容到最低版本2.1(API level7以上)
(2)Gradle版本为1.5.0以上,或者更高版本(我用的是2.0的)
初识DataBinding简单用法
第一步:

android {    compileSdkVersion 25    buildToolsVersion "25.0.1"    defaultConfig {        applicationId "org.loader.androiddatabinding"        minSdkVersion 14        targetSdkVersion 25        versionCode 1        versionName "1.0"    }    dataBinding {        enabled = true//其实就是这是最关键的    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:25.1.0'}

第二步:数据模型的创建,当然下面的只是一个例子,也可以是getAndset的写法,也可以的。

public class User {   public  String firstName;   public  String lastName;   public User(String firstName, String lastName) {       this.firstName = firstName;       this.lastName = lastName;   }}

第三步:布局绑定数据
是不是跟以前写法不同了,数据绑定布局文件略有不同,并从布局的根标记开始,后跟数据元素和视图根元素。 此视图元素是您的根将在非绑定布局文件中。数据中的用户变量描述了可以在此布局中使用的属性。
布局中的表达式使用“@ {}”语法写在属性属性中。 这里,TextView的文本设置为user的firstName属性:

<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android">   <data>       <variable name="user" type="com.example.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>

第四步了控制器展示数据
默认情况下,将根据布局文件的名称生成一个Binding类, 上面的布局文件是main_activity.xml,所以生成类是MainActivityBinding。 这个类保存从布局属性(例如用户变量)到布局视图的所有绑定,并知道如何为绑定表达式分配值。创建绑定的最简单的方法是在填充视图时执行。

@Overrideprotected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);      MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);   User user = new User("李海鸣威", "1828888888");   binding.setUser(user);}

运行一下就出结果了,是不是很快乐,比以前的findVIewbyId省了不是一点半点吧。

这里写图片描述

0 0
原创粉丝点击