[Android][Kotlin]LiveData,DataBindingの使い方(サンプルコード付き)

image

DataBindingとは

超ざっくり説明すると、UIを呼び出す時にfindViewById()を使わずに呼び出せるようになるライブラリのこと。

ソースコードの見通しが良くなったり、コード量を削減できます。

詳しくは公式のドキュメントを参照してください。

LiveDataとは?

超ざっくり説明すると、データが更新されるたびにUIに通知を送って、自動でUIを更新してくれるようになるデータホルダー クラスです。

詳しくは公式のドキュメントを参照してください。

サンプルアプリ

codeLabを元に

ボタンを押すとカウントアップされる簡単なアプリを作ってみましょう。

サンプルコード

activity_main.xml

TextView、Buttonだけのすごく簡単なActivityです。

肝となるのは、以下の記述。

dataBindinするときのお作法のようなものです。

ここでの意味は「CountViewModel.kt」で定義されている変数や関数にviewModelという名前でアクセスできるようにしています。

MainActivity.kt

以下のコードは

activity_main.xmlの<data> </data>の中で宣言したレイアウト変数を設定するために必要な記述です。(dataBinding)

バインディングクラスは、ライブラリによって自動的に生成されます。

以下のコードはおまじないとして覚えていても最初は問題ないと思います。

lifecycleOwnerについてはあまり理解できていないので、ドキュメントを参照してください。

lifecycleを管理していそう。

CountViewModel.kt

LiveDataを使った記述をしているので、解説していきます。

livedataを使って値を監視するときは以下のように、1つの変数につき2行のコードが必要になります。

MutableLiveData()の引数が初期値になります。

詳細は公式のドキュメントを参照してください。

あとはクラス内で以下のように自由にアクセスできます。

サンプルでは_countが変化するたびに勝手にUIに反映されます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


error: Content is protected !!