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
等等其他特性
相關文章
- XAML資料繫結(Data Binding)
- Android開發教程 - 使用Data Binding(五)資料繫結Android
- 資料中介者--資料繫結2(data-binding)
- Binding(一):資料繫結
- java之多型(Polymorphic)、動態繫結(Dynamic Binding)、遲繫結(Late Binding)Java多型
- 深入原始碼學習 android data binding 之:data binding 註解原始碼Android
- Android資料繫結框架DataBinding用法Android框架
- Android下實現資料繫結功能Android
- 資料繫結
- 簡單資料繫結和複雜資料繫結
- Android Study 之 如何透過Data Binding提升擼Android
- 資料繫結原理
- 深入原始碼學習 android data binding 之:ViewDataBinding原始碼AndroidView
- 第二講、Vue3.x繫結資料、繫結html、繫結屬性、迴圈資料VueHTML
- Vue的資料繫結Vue
- 資料繫結之謎
- 【Angular-資料繫結】Angular
- 2、理解資料繫結
- Android開發教程-使用DataBinding(五)資料繫結Android
- Android JetPack~ DataBinding(資料繫結)(一) 整合與使用AndroidJetpack
- Jetpack ---- Data Binding入門(二)Jetpack
- Android開發教程 - 使用Data Binding(八)使用自定義InterfaceAndroid
- WCF中的Binding模型之六(完結篇):從繫結元素認識系統預定義繫結模型
- 【阿不】深入ASP.NET資料繫結(中)—資料雙向繫結機理ASP.NET
- Vue資料繫結簡析Vue
- vue資料繫結原始碼Vue原始碼
- JS雙向資料繫結JS
- SpringMVC資料繫結demoSpringMVC
- Flex 資料繫結備忘Flex
- Android開發教程 - 使用Data Binding(四)在Fragment中的使用AndroidFragment
- Android開發教程 - 使用Data Binding(三)在Activity中的使用Android
- javascript實現資料的雙向繫結(手動繫結)JavaScript
- 理解ASP.NET Core - 模型繫結&驗證(Model Binding and Validation)ASP.NET模型
- Binding(四):資料校驗
- angular1資料繫結例子Angular
- Vue資料雙向繫結原理Vue
- vue雙向資料繫結原理Vue
- Winform控制元件繫結資料ORM控制元件