【Android】DataBinding

スポンサーリンク
レクタングル大

DataBindingが判れば、findViewById要らないじゃん

Kotlinでは、記述上、findViewByIdを使わないこともできるようになり、ソースはだいぶ見やすくなりました。でも、画面上の項目を意識しながらコーディングしなくちゃいけなくて、なんか違うな?泥臭いな。と思っていました。

DataBindingという技術を使えば、画面の項目をActivityから直接触るのではなく、Layout側に定義されたデータ定義をいじくることで、それが画面に反映することが出来るようになると。

Activity→Layoutの項目 と直接アクセスするのでは無く
Activity→Layoutのデータ定義→Layoutの項目 とすることで、Activityは項目の細かい挙動を考えなくてよくなるわけです。

細かい挙動は、Layout側で行う。Activityはそのもとになる情報を画面に渡すだけ。

修正前

以下は、ButtonとTextViewを画面に定義して、trueとfalseの表示を切り替えるだけのアプリ

MainActivity.kt

activity_main.xml

修正後

まず、build.gradle(アプリ)に追加して反映

activity_main.xml

ここで、一回ビルドします。Android Studioがそれようのクラスを自動で作ってくれます。

MainActivity.kt

ActivityMainBindingというクラス内に、Layout側のデータ項目、項目部品が定義されているので、そこをアクセスするようにする。もう画面をコントロールするというよりは、画面表示をうまくやってくれるクラスに指示を出すだけのイメージですね。

スポンサーリンク
レクタングル大

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル大
%d人のブロガーが「いいね」をつけました。