什麼是 Data Binding

Data Binding 是一個函式庫,允許開發者使用聲明性格式(而不是以編程方式)將佈局 (layout) 中的 UI 元件綁定到應用程序中的數據來源。

使用編程方式綁定

佈局元件 (layout) 通常會定義在 Activity 內並呼叫相關的 UI 框架方法。
如下透過呼叫 findViewById 找到 TextView 並綁定到 viewModel 的 userName 屬性

TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

使用 Data Binding 綁定

以下則是使用 Data Binding 直接在佈局檔案指定文字給 widget,這種方式可以取代上面範例的 Java code

<TextView
    android:text="@{viewmodel.userName}" />

透過在佈局檔案中綁定元件的方式可以移除許多需要在 Activity 呼叫的 UI 框架方法。讓  Activity 更簡潔並容易維護,也能改善效能,避免記憶體洩漏及 Null Pointer Exception。

Using the Data Binding Library

1.前置準備

2.佈局(layout)和綁定表達式(binding expressions)

3.使用可觀察資料物件(observable data objects)

4.產生綁定類別(binding classes)

5.綁定轉接器(binding adapters)

6.綁定佈局到架構元件(bind layout views to architecture components)

7.雙向綁定(Two-way data binding)