最近使っているという声をよく聞くdataBinding。
Butter Knife替わりに使うこともできますし、
Viewに関連する変数をViewに直接反映させたり、色々と開発の助けになってくれるので、
覚えて損はないと思います。

今回は、Butter Knife替わり、Viewを自動でインスタンス化するケースについて
説明します。

DatabindingをGradleに追加する

build.gradle(app)に以下を追加します。

 

ViewにInjectする

Build.gradleファイルに上記を追加したら、Gradle Buildしてください。
次にViewにInjectしたいlayoutファイルに以下を追加します。

TextViewのみ追加した簡単なlayoutファイルです。
<layout>要素で全体のlayoutファイルを囲んでいます。
layout追加することによって、ActivityやFragmentでfindViewId関数
を呼ばなくても定義したTextViewを直接呼び出すことができます。

FragmentにDatabindingを導入する

先ほど作ったlayoutファイルを読み込むFragmentにDatabingdingで生成されたクラスを定義しましょう。

onCreateViewで、先に定義したFragmentInputDailyDataBindingクラスを生成しましょう。

DataBindingUtil.inflate関数
でレイアウトファイルからDataBindingクラスを生成します。
そして、DataBindingで生成されたクラスからViewを返しています。

ActivityでDatabindingを使う

Fragmentと同じようにDataBindingクラスを先と同様にメンバー変数に定義します。
onCreate関数でDatabindingUtilクラスのSetContentView関数を呼び出します。

Databindingを用いて、ViewへのInjectionが自動で行えるようになりました。