yasushicohiのやんややんや

記事にするまでもないつぶやき、ありふれた想い、TIL。ブログ: https://yasushicohi.com

kotlinでDataBindingを学習してみた【報告と要約のみ】

Javaをやっていましたが、さすがにこれからAndroidの新規開発はすべてKotlinで行われると思うので、kotlin学びてぇなって思った次第です。 それと同時になんか作ってみるか、ということでDataBindingですね。今更ながら。

MVVMを学ぶ布石としてDataBindingをやりました。 ほかにもViewModelとかの学習もありますからね。

この記事は報告の記事です、解説ではありません。

戸惑ったところ

Kotlinではdata classと宣言できます。 コンストラクタが省略でき、setter/getterが必要ないです。 そこが学習で戸惑いましたね。

data class User(val name: String)

というように簡単なクラスなら、一行でサラッとかけるんですね。凄いですね。

DataBindで実装するのに必要なこと

アクティビティ(フラグメント側)

setContentViewのほかにも、bindしてあげる必要があります。

 val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
val user = User(コンストラクタ)
 binding.user = user

この時のbinding.userはレイアウト側のuserだと思います。

レイアウト側

レイアウト側では、

<layout></layout>の中に、
  <data>
        <variable name="このレイアウトで使う変数名"
                  type="クラス名"/>
    </data>

というように定義してあげて、

"@{変数名.メンバ変数(メソッド)}"

で使います。