2015/07/08 What's New in Android @Gunosy
(Data Binding)
Profile
釘宮 愼之介 / @kgmyshin
• Androidエンジニア • 福岡県福岡市南区野多目出身 • SHIROBAKO最高
たとえばこんなUserクラスをbindしてみたい
2. dataタグ内でuserオブジェクトを
宣言する
あとはActivityなどで bindするUserオブジェクトをセットするだけ
このままだと、
Userオブジェクトの各メンバーの値が
変わってもViewの表示は変わらない。
Userクラスをこう書き換えるだけでOK
1. 継承
2. 対象に@Bindableを付与
3. 値が変わったらnotifyPropertyChanged!
activity_main.xml -> ActivityMainBinding view_item.xml -> ViewItemBinding a.xml -> ABidning
name=“user” -> setUser name=“adminUser” -> setAdminUser
さっきのをまるっと下記に置き換えても動く
btnというid名にしたから、binding.btnでアクセスできる
(エラーは出るけど動く。。。。こういうのはたくさんある)
2. bind先のオブジェクト
3. onClickListenerにbind!
1. これ書く
app:onClickListener="@{activity.showToastListener}"のshowToastListenerを用意する
app:onClickListenerでも app:setOnClickListenerでも動く
たとえば、こんな風にcapTextというものを 作ってそこにtextをbindすると
大文字で表示されるようなことをしたい
こんなstaticメソッドを用意するだけ。
このメソッド、本当にどこに実装しても動いた。
複数同じメソッドがある場合は
先に見つかった方が使われるような動きをする。
type=“List<Task>” だと動かない。