Data Binding

Data Binding merupakan salah satu fitur yang dapat mengurangi proses penulisan code pada Android. Jika kalian sudah terbiasa dengan “findViewById” maka dengan Data Binding kalian tidak perlu lagi untuk memanggil fungsi itu. Selain itu data binding memungkinkan kita untuk memasukkan object (class) kedalam layout UI (xml).

data binding image

Sekarang mari kita buat contoh data binding, saya menggunakan data binding untuk object dengan nama book.

Pertama buat project di Android Studio menggunakan kotlin, jika belum tahu silahkan buka link berikut ini.

Kedua, aktifkan Data Binding melalui gradle file (gradle di app level).

dataBinding {
        enabled = true
}

Saya sarankan kalian meng-update Android Studio minimal versi 3, sehingga tidak perlu import library Data Binding.

Ketiga, buat object bernama “Book” sebagai object yang di databinding.

class Book (val title: String, val author: String)

Keempat, tambahkan object “book” dan “activity” ke dalam layout main_activity.

<data>
        <variable name="book" type="com.android.belajar.databindingexample.Book"/>

        <variable name="activity" type="com.android.belajar.databindingexample.MainActivity" />
</data>

Langkah ke-empat ini adalah proses memasukkan Object ke dalam UI. sehingga object dikenali oleh UI.

Langkah kelima, membuat koneksi antara UI dan Logic, tulis code di bawah ini di dalam kelas main_activity.

val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.activity = this

Compile project mu, jika semua sudah benar Data Binding akan membuat file didalam folder generatedJava

Sekarang semua sudah siap dan Data Binding sudah terkoneksi.

Mari kita buat simple study case.
1. Kita masukkan Object Book
2. Klik Object Book dan tampilkan toast.

Masukkan Object Book kedalam MainActivity class.

val book = Book("Belajar-Android", "artdroidindonesia")
binding.setVariable(BR.book, book)
binding.executePendingBindings()

Buat fungsi onClick di dalam MainActivity class

fun onClickTitle(x: Book){
  Log.e("Click", "onClick!!")
  Toast.makeText(this, "Book title: ${x.title} Book author: ${x.author}", Toast.LENGTH_LONG).show()
}

Ekseskusi fungsi onClick di dalam XML atau UI.

android:onClick="@{()-> activity.onClickTitle(book)}"

Jadi kalau dilihat fungsi click di eksekusi di UI/XML, butkan pada code. Demikian contoh simpel tentang Data Binding, jika kalian ingin mendownload code silahkan clone di github.

Apakah artikel ini bermanfaat mu?

Klik bintang untuk memberi rating

Overall Rating / 5. Jumlah Suara

Leave a Reply

Your email address will not be published. Required fields are marked *