DataBinding導入
公式によると"DataBindingはAndroidStudio ver.1.5.0-alpha1
からダヨー"とあり、1.5.0かそれ以前によって変わってくる。
自分用のメモなので、それ以前の部分は省きます。
1.5.0以降であれば、app/build.gradleに以下のようにdataBinding
について記載する。
build.gradle
android {
...
dataBinding {
enabled = true
}
}
これだけでDataBindingを使用できるようになる。
layoutのバインディング
findViewById()
やそれを置き換えたButterKnife
による実装をDataBinding
による実装に置き換えられる。
まず、レイアウト全体を`でくくる。
activity_main.xml
<layout
...>
<android.support.design.widget.CoordinatorLayout
...>
</android.support.design.widget.CoordinatorLayout>
</layout>
このlayout
タグの直下にdata
タグを記載する。
activity_main.xml
<layout
...>
<data>
<variable name="main" type="com.tacksman.BindingSample.MainActivity" />
</data>
<android.support.design.widget.CoordinatorLayout
...>
</android.support.design.widget.CoordinatorLayout>
</layout>
ここまでの手順を行うと、variable
で定義したmain
より、パラメータやメソッドにアクセスできる。
activity_main.xml
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{home.viewTitle}"/>
ちなみに、ここまでの手順を行っていると、レイアウトファイルのバインディングクラスが作成される。
例: activity_main.xml -> ActivityMainBinding
これを使って、レイアウトの中の要素にアクセスするといったこともできる。