Android 官方資料繫結 Data Binding Library
DataBinding 支援 Android 2.1 (API level 7+)
並且 Gradle 1.5.0-alpha1 以上
以上條件毫無疑問不用考慮了,如果有不滿足條件的請自行百度。廢話不多說直接上實戰
構建環境
在你的對應Module中的 build.gradle檔案中新增,然後Rebuild Project就可使用DataBinding了
android {
....
dataBinding {
enabled = true
}
}
Layout 檔案
<?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:id="@+id/name"
android:text="@{user.firstName}"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.lastName}"/>
</LinearLayout>
</layout>
使用dataBinding後根佈局就需要改成layout,然後在
<variable name="user" type="com.example.User"/>
最後再在Activity的onCreate中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
User user = new User("Test", "User");
binding.setUser(user);
}
至此即實現了顯示繫結
雙向繫結
只需要在@後面加一個=即可
<TextView android:text="@={user.lastName}"/>
獲取view
DataBinding.id即可獲取view,且自動識別型別
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
binding.user
Object 物件
/**
* Created by cheng on 2016/9/26.
*/
public class User {
public final String firstName;
public final String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
還有跟多用法請參看Android 官方文件
https://developer.android.com/topic/libraries/data-binding/index.html?hl=zh-cn#data_binding_layout_files
dataBinding特性
- 支援雙向繫結
- 支援繫結Listener 事件
- 支援繫結方法
- 支援繫結屬性
- 支援直接獲取View 免使用findViewById
等等其他特性
相關文章
- Android開發教程 - 使用Data Binding(五)資料繫結Android
- Binding(一):資料繫結
- Binding(五):多路繫結
- Android Study 之 如何透過Data Binding提升擼Android
- Android JetPack~ DataBinding(資料繫結)(一) 整合與使用AndroidJetpack
- Android開發教程-使用DataBinding(五)資料繫結Android
- Android開發教程 - 使用Data Binding(八)使用自定義InterfaceAndroid
- 資料繫結
- Android開發教程 - 使用Data Binding(三)在Activity中的使用Android
- Android開發教程 - 使用Data Binding(四)在Fragment中的使用AndroidFragment
- Jetpack ---- Data Binding入門(二)Jetpack
- 第二講、Vue3.x繫結資料、繫結html、繫結屬性、迴圈資料VueHTML
- Angular | 理解資料繫結Angular
- SpringMVC資料繫結demoSpringMVC
- WPF Custom control and display binding and specific data
- 理解ASP.NET Core - 模型繫結&驗證(Model Binding and Validation)ASP.NET模型
- Android開發教程 - 使用Data Binding(七)使用BindingAdapter簡化圖片載入AndroidAPT
- Vue資料繫結簡析Vue
- JS雙向資料繫結JS
- vue資料繫結原始碼Vue原始碼
- Binding(四):資料校驗
- MyBatis繫結錯誤:org.apache.ibatis.binding.BindingException:Invalid bound statement (not found)MyBatisApacheException
- 深入原始碼學習 Android data binding 之:回撥通知管理器 CallbackRegistry 解析原始碼Android
- Android開發教程 - 使用Data Binding Android Studio不能正常生成相關類/方法的解決辦法Android
- Winform控制元件繫結資料ORM控制元件
- Study Blazor .NET(四)資料繫結Blazor
- Vue資料雙向繫結原理Vue
- angular1資料繫結例子Angular
- vue雙向資料繫結原理Vue
- DataBinding資料繫結基本講解
- 初見SpringMVC之資料繫結SpringMVC
- 原生js雙向資料繫結JS
- Android官方架構元件DataBinding雙向繫結篇: 觀察者模式的殊途同歸Android架構元件模式
- 模板語法之--強制資料繫結和繫結事件監聽事件
- 前端三大框架:資料繫結與資料流前端框架
- 如何提取SAP UI5 XML view裡定義的欄位元素繫結資訊(binding path)UIXMLView
- [譯] Data Binding 庫使用的經驗教訓
- WPF/C#:資料繫結到方法C#
- 雙向資料繫結是什麼