DataBinding使用教程(一)

Data Binding 解決了 Android UI 編程的一個痛點,官方原生支持 MVVM 模型可以讓我們在不改變既有代碼框架的前提下,非常容易地使用這些新特性。Data Binding 的最大的好處就是Android開發(fā)者可以像前端開發(fā)那樣直接在View中綁定數(shù)據(jù),避免了代碼的重復和繁瑣。言歸正傳,下面帶領大家使用Data Binding。

準備

新建一個Project,保證Android 的 Gradle 插件版本不低于 1.5.0-alpha1

classpath 'com.android.tools.build:gradle:3.0.1' 

然后修改對應模塊的build.gradle

 dataBinding{
        enabled = true
    } 

修改好的build.gradle如下圖所示:

dataBindingEnabled.png

布局文件

使用 Data Binding 之后,xml 的布局文件就不再用于單純地展示 UI 元素,還需要定義 UI 元素用到的變量。所以,它的根節(jié)點不再是一個 ViewGroup,而是變成了 layout,并且新增了一個節(jié)點 data。

<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
    </data>
    <ConstraintLayout>
    ....
    </ConstraintLayout>
</layout>

數(shù)據(jù)對象

定義一個Bean

public class UserBean {

    private String name;
    private int age;

    public UserBean(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

定義 Variable

我們將在xml中去綁定剛剛定義的Bean

    <data>
        <variable
            name="UserBean"
            type="com.zhangl.data.UserBean">
        </variable>
    </data>

定義的TextView中text=@{UserBean.name}

      <TextView
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="@{UserBean.name}"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

這樣就將UserBean中的name和TextView綁定起來。

Activity中實現(xiàn)

        ActivityMainBinding mainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main);
        UserBean userBean = new UserBean("zhangl",24);
        mainBinding.setUserBean(userBean);
數(shù)據(jù)綁定顯示.png

可以看到,已經(jīng)將數(shù)據(jù)顯示顯示在activity中。

文末附上github地址:https://github.com/zhanglu1994/DataBinding

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容