Access View Android

Perbandingan findViewById, Kotlin Synthetic, dan ViewBinding (Android Studio)

Juli 15, 2020 6:36 am Dipublikasikan oleh

Terdapat beberapa metode akses View pada pemrograman Android Kotlin, seperti findViewById, Kotlin Synthetic, ViewBinding, DataBinding, dan metode lain yang mungkin masih jarang diketahui. Pada kesempatan ini kita akan membandingkan tiga metode yakni findViewById, Kotlin Synthetic dan ViewBinding. Untuk metode DataBinding akan dibahas pada kesempatan lain.

Sebelum mulai penjelasannya, pastikan dulu versi Android Studio yang digunakan adalah versi yang terbaru, minimal versi 4.0.0.

Buat project Android Studio baru dengan pengaturan seperti ini : Empty Activity, Language Kotlin, Minimum SDK API 21 (Lolipop).

Selanjutnya modifikasi activity_main.xml dengan kode berikut :

Tampilan dari view tersebut terdiri dari EditText id : edit_text, Button id : btn_send, TextView id : text_view . Kurang lebih tampilan hasilnya sederhana karena artikel ini hanya membahas tentang metode akses view saja.

Android Access View Preview

Pembahasan akan dimulai dari findViewById.

findViewById

findViewById adalah metode akses view tertua dan masih digunakan oleh banyak tutorial membuat aplikasi android.

Buka MainActivity.kt , modifikasi menjadi seperti ini :

Kode diatas bisa diambil kesimpulan mengenai pola penggunaan findViewById, yakni

  1. Deklarasikan jenis variabel dari view terlebih dahulu
    contoh private lateinit var editText: EditText
  2. Tetapkan nilai untuk variabel view tersebut
    contoh editText = findViewById(R.id.edit_text) , R.id.edit_text adalah id views yang akan digunakan, bisa ditemukan di layout xml (dalam kasus ini activity_main.xml)

Kelemahan utama dari metode findViewById yakni metode ini hanya mengandalkan id dari view, sehingga selama id tersebut ada maka tidak akan terjadi error pada kode ketika developer keliru mengisi id.

Misalkan developer membuat 2 layout, activity_main.xml dan activity_detail.xml, pada activity_main.xml terdapat view id : toolbar sedangkan pada activity_detail.xml tidak ada id tersebut, maka tidak akan terjadi error saat developer menulis kode findViewById(R.id.toolbar) pada activity_detail.xml, error (NullPointerException) akan terjadi saat developer membuka DetailActivity pada aplikasi.

Kotlin Synthetic

Kotlin Synthetic merupakan bagian dari Kotlin Android Extension dan bisa dibilang merupakan versi upgrade dari findViewById, developer tidak perlu lagi mendeklarasikan jenis variabel dari view, cukup import id yang akan digunakan.

Contoh seperti kode MainActivity.kt berikut ini :

Ciri utama dari metode ini adalah adanya import kotlinx.android.synthetic.

Meski keuntungan dari metode ini adalah kesederhanaan cara menggunakannya, namun ada kelemahan yang membuatnya tidak lagi menjadi best practices. Misalkan developer membuat layout activity yang berisi view dengan id yang sama, maka developer perlu lebih teliti saat mengimpor Kotlin Synthetic, jika salah akan terjadi error NullPointerException.

Kotlin Synthetic Problem

Gambar diatas menunjukkan jika developer membuat 2 layout yang berisi view id : btn_send maka perlu ketelitian saat mengimpor Kotlin Synthetic.

ViewBinding

ViewBinding adalah metode akses view yang direkomendasikan oleh Google, developer tidak perlu lagi khawatir terhadap error NullPointerException saat mengakses view karena ViewBinding hanya akan menampilkan id yang terdapat pada layout yang dipilih.

item dari sebuah viewbinding

Kelemahan dari ViewBinding adalah metode ini masih baru dirilis oleh Google pada Google I/O 2019 (tonton videonya), sehingga baru sedikit tutorial pembuatan aplikasi Android berbahasa Indonesia yang menggunakan metode ini.

Fitur ViewBinding secara default statusnya non-aktif sehingga developer perlu mengaktifkan fitur ini terlebih dahulu. Caranya, buka build.gradle modul:app , tambahkan kode BuildFeatures berikut di dalam scope android :

Selanjutnya buka MainActivity.kt, buat variabel seperti berikut

private lateinit var binding : ActivityMainBinding

variable binding bisa digunakan untuk mencari view, misalkan untuk mencari view id : edit_text yang ditulis adalah binding.editText

Penulisan kelas ViewBinding kurang lebih seperti berikut :

  • nama layout : activity_main.xml menjadi ActivityMainBinding
  • nama layout : activity_detail.xml menjad ActivityDetailBinding
  • nama id view : btn_send menjadi btnSend
  • nama id view : txt_view menjadi txtView

nantinya developer akan terbiasa dengan penulisan kelas ViewBinding tersebut.

Kode hasil akhirnya kurang lebih seperti ini :

Selanjutnya jalankan aplikasi di emulator seperti biasa.

Sampai di sini penjelasan singkat mengenai 3 metode akses view, jika ada pertanyaan silakan tambahkan komentar.

Label : , ,

Dikategorikan pada: ,

Loading comments…