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>
というように定義してあげて、
"@{変数名.メンバ変数(メソッド)}"
で使います。