Pada Google I/O 2015, Google mengeluarkan Data Binding Library untuk Android. Tujuan data binding adalah untuk declarative layout dan meminimalisir penggunaan kode untuk mengikat application logic dan komponen layout. Sebelumnya, kita lihat dulu contoh penggunaan findViewById dan ButterKnife. Berikut adalah contoh layout xml
Jika menggunakan findViewById, pada class Activity bisa dibuat seperti ini
cukup merepotkan jika kita mempunyai banyak komponen UI. Selanjutnya jika menggunakan ButterKnife, pada class Activity bisa dibuat seperti ini
Bisa dilihat dengan ButterKnife dapat menghilangkan penggunaan findViewById berulang-ulang dan membuat code lebih rapi. Selanjutnya adalah bagaimana cara menggunakan data binding.
1. Enable DataBinding di App.Gradle
2. Create POJO if necessary, ie:
3. Wrap Parent ViewGroup in <layout> tag. Define meta data of binding in <data> tag and set the variables defined <data> tag in binding.
Bisa dilihat data variable User di-bind dengan TextView (pada atribut "android:text"). Untuk "user.nama" dan "user.address" mengikuti dari POJO yang dibuat.
4. Inflate layout using DataBindingUtil in Activity or Fragment Class. ie:
Hasilnya TextView yang sudah di-bind tadi akan menjadi "Haris" dan "Jl. Kartika Pinang". Dengan databinding, kita tidak perlu lagi mengetik findViewById ataupun @BindView. Selain itu, dengan databinding kita bisa menyediakan sedikit simple logic pada xml layout, contoh:
databinding di android nantinya digunakan dengan MVVM pattern.
Lebih lengkap mengenai databinding bisa dilihat disini. Semoga membantu/
PS: Please correct me if I'm wrong :)
Reference:
No comments:
Post a Comment