android data binding jetpack VIII BindingConversionhtml
android data binding jetpack VII @BindingAdapterjava
android data binding jetpack V 實現recyclerview 綁定android
android data binding jetpack IV 綁定一個方法另外一種寫法和參數傳遞git
android data binding jetpack III 綁定一個方法github
android data binding jetpack II 動態數據更新app
android data binding jetpack I 環境配置 model-view 簡單綁定框架
第一步:baidu jetpack編輯器
第二步:準備佈局
1.Gradle 插件版本不低於 1.5.0-alpha1:classpath 'com.android.tools.build:gradle:1.5.0'post
(Module)的 build.gradle:
加配置:
dataBinding {
enabled true
}
![](http://static.javashuo.com/static/loading.gif)
第三步:
使用 Data Binding 以後,xml 的佈局文件就再也不用於單純地展現 UI 元素,還須要定義 UI 元素用到的變量。因此,它的根節點再也不是一個 ViewGroup
,而是變成了 layout
,而且新增了一個節點 data
。
<layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> </data> <!--原先的根節點(Root Element)--> <LinearLayout> .... </LinearLayout> </layout>
將文件放在layout文件夾。以下圖。
佈局中多了<data>節點。data
節點的做用就像一個橋樑,搭建了 View 和 Model 之間的通路。綁定數據M2V
第四步:瞭解<data>節點
在代碼裏解釋:
先建一個類備用
定義一個變量
java.lang.*
包中的類會被自動導入,能夠直接使用,例如要定義一個 String
類型的變量:<variable name="firstName" type="String" />
第五步:
同步一下項目。build一下。
根聽說明項目會生成下面這個類。
打開這個類是這樣的
裏面有佈局元素和剛纔定義的變量。
第六步:
在使用的activity類裏聲明綁定類實例變量,修改設置視圖:
private ActivityMainBinding mBinding;
作完上面兩步。可是類
ActivityMainBinding 編輯器不認識。不能自動導入。rebuild、clean都無論用。怎麼辦。baidu也沒給出辦法。
試了一下,能夠手動導入。直接輸入:
import com.ht.jetpack.databinding.ActivityMainBinding;
嘿嘿。沒問題。項目能夠編譯經過了。又完成一步。
到此binding的環境差很少了可用了。
其它知識點:
除了使用框架自動生成的 ActivityBasicBinding
,咱們也能夠經過以下方式自定義類名。
<data class="com.example.CustomBinding"> </data>
注意
ActivityBasicBinding
類是自動生成的,全部的 set
方法也是根據 variable
名稱生成的。例如,咱們定義了兩個變量。
<data>
<variable name="firstName" type="String" /> <variable name="lastName" type="String" /> </data>
那麼就會生成對應的兩個 set 方法。
setFirstName(String firstName);
setLastName(String lastName);
第七步:綁定數據。
把textview text 與user 的name變量綁定。
語法是@{}。語法能夠當一大塊去學習。這裏先試一試。
經過這個代碼,告訴textview的text數據來源是user 的name。二者綁定起來。
而後在activity裏作以下操做:
生成一個User對象。並把他給綁定器。
咱們運行起來看一下。
文字出來了,跟textview綁在了一塊兒。至此最簡單的綁定過程搞定了。