Synthetic Binding pada Kotlin, Goodbye findViewById()

Synthetic Binding pada kotlin menghindari penggunaan findViewById()secara berulang-ulang. Istilah findViewById() bagi android Developer tidak lah asing. Metode ini akan mengembalikan Object View yang telah kita buat pada Layout. Suatu hal yang menjengkelkan karena findViewById() akan kita panggil berulang-ulang sebanyak object yang ada pada Layout. Dalam tutorial ini saja kita sampai 2 kali memangil findViewById().

Synthetic Binding pada Kotlin
Synthetic Binding pada Kotlin

Synthetic Binding pada Kotlin

Kotlin berusaha menghilangkan masalah tersebut. Dengan menggunakan fitur plugin Kotlin-Extensions yang sangat bagus yang kita kenal dengan istilah Synthetic Binding. Bagaimana cara kerjanya dan perbedaannya dengan findViewById()?

Mari kita lihat contoh berikut:

Mari kita lihat XML Layout mada activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.mataramsoftware_id.kotlinhelloworld.MainActivity">
 
    <TextView
        android:id="@+id/nimMahasiswa"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:textSize="16sp" />
 
    <TextView
        android:id="@+id/namaMahasiswa"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/nimMahasiswa"
        android:padding="8dp"
        android:textSize="16sp" />
 
</RelativeLayout>

Sekarang kita gunakan layout activity_main.xml menggunakan Java dengan cara lama yaitu menggunakan findViewById():

package com.mataramsoftware_id.kotlinhelloworld;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
TextView nim,nama;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        nim=findViewById(R.id.nimMahasiswa);
        nama=findViewById(R.id.namaMahasiswa);
        nim.setText("NIM : 03.KA.009");
        nama.setText("NAMA : Jagungodak.web.id");
    }
}

Selanjutnya kita lihat penggunaan Synthetic Binding pada Kotlin:

package com.mataramsoftware_id.kotlinhelloworld
 
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*;
 
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        nimMahasiswa.setText("NIM : 03.KA.009")
        namaMahasiswa.setText("NAMA : Jagungodak.web.id")
 
    }
}

Mari kita lihat, pada kotlin kita bisa access View berdasarkan ID secara langsung tanpa menggunakna findViewById() pada setiap View. Lebih simple katakan GoodBye pada findViewById().

Jadi?? Pertanyaan selanjutnya adalah Bagaimana Mengimplementasikannya??

Untuk mengimplementasikannya pada Android Studio cukup dengan menambahkan Kotlin Android Extention pada build.gradle seperti berikut:

apply plugin: 'kotlin-android-extensions'

Cukup mudah kan… monggo dicoba sendiri.

Refrence

Synethetic Binding on Kotlin

Sharethis

 

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

twelve − 1 =

This site uses Akismet to reduce spam. Learn how your comment data is processed.