Android 数据绑定 (Data Binding)

  一、介绍

  这篇文章说参考android官网来介绍如何使用Data Binding库来书写布局文件。并且用最少的代码来绑定你的app逻辑和layouts文件的控件。

  二、使用条件

  l Android 2.1(API等级7+)上

  l 需要:Android Studio 1.3.0-beta1 或更高版本。

  l Android Plugin for Gradle 1.5.0-alpha1 或更高

  三、简单使用

  步骤一:

  在app中的build.gradle中添加,如下:

  android {

      ....

      dataBinding {

          enabled = true

      }

  }

  步骤二:

  创建一个 POJO : User.java

  private final String firstName;

    private final String lastName;

    public User(String firstName, String lastName) {

        this.firstName = firstName;

        this.lastName = lastName;

    }

    public String getFirstName() {

        return this.firstName;

    }

    public String getLastName() {

        return this.lastName;

    }

  步骤三:

  在 layout 中使用 data

            android:orientation="vertical"

            android:layout_width="match_parent"

            android:layout_height="match_parent">        

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:background="@color/colorPrimary">     

            android:layout_height="wrap_content"

            android:text="@{user.firstName}"/>       

            android:layout_height="wrap_content"

            android:text="@{user.lastName}"/>   

  在 data 内描述了一个名为user的变量属性,使其可以在这个layout中使用,用法类似于 java web 的 el 表达式

  步骤四:

  在activity中使用MainActivityBindingbinding = DataBindingUtil.setContentView(this, R.layout.main_activity);

  Useruser = new User("Test", "User");

binding.setUser(user);

  MainActivityBinding 这个类在写完 layout 的时候会生成 如果是 listview 或者 recyclerview 的adapter 可以使用

ListItemBindingbinding = ListItemBinding.inflate(layoutInflater, viewGroup, false);  
  //or

  ListItemBindingbinding = DataBindingUtil.*inflate*(layoutInflater, R.layout.***list_item***, viewGroup, **false**);

  步骤五:

  运行结果如图

the end

评论(0)