Cara Binding View Menggunakan Library ButterKnife Android


Assalamualaikum Warahmatullahi Wabarakatuh.

ButterKnife adalah salah satu Library yang dikembangkan oleh Jake Wharton. library tersebut sangat populer dan banyak digunakan oleh para developer android, karena mampu menyerhanakan pemulisan kode, itu mengapa ButterKnife wajib diikutsertakan dalam project aplikasi yang kita buat.

Salah satu fungsi dari ButterKnife yaitu dengan View Injection, kita tidak perlu menggunakan findViewById(), pada umunya saat kita mendeklarasikan sebuah view, seperti EditText, TextView, Button, dsb. kita perlu melakukan fiindViewById satu per-satu untuk setiap komponennya. findViewById akan tergantikan dengan Annotation (@BindView).


Selain itu, ButterKnife dapat meringkas kode seperti saat kita mengset listener pada sebuah Button, untuk memberikan Event menggunakan onClickLstener(), dengan menggunakan ButterKnife, kita tidak perlu menggunakan fungsi tersebut, kita hanya perlu menambakan Annotation (@OnClick) pada method yang ingin di eksekusi.

Itulah beberapa manfaat dari Library ButterKnife, sebenarnya masih banyak manfaat serta keguaan dari library tersebut. Pada materi ini, kita hanya akan membahas bagaimana cara eliminasi findViewById dan menggunakan Event dengan ButterKnife.

Materi lainnya yang direkomendasikan:


Cara Binding View Menggunakan Library ButterKnife Android

Buka aplikasi Android Studio kalian, Buat Project Baru. Lalu tambahkan library berikut ini pada dependencies didalam file build.gradle (direktori app).
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
Library tersebut digunakan untuk menginstall ButterKnife dan pastikan PC kalian terhubung dengan Internet.

Buka file activity_main.xml kalian, misalkan kita membuat sebuah View seperti EditText, Button dan TextView.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:layout_margin="16dp"
    android:gravity="center"
    android:orientation="vertical"
    tools:context="android.cianjur.developer.net.libraryexample.MainActivity">

    <EditText
        android:id="@+id/input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/submit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="OK" />

    <TextView
        android:id="@+id/output"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:gravity="center"
        android:text="Hasil"
        android:textSize="15sp"
        android:textStyle="bold" />
    
</LinearLayout>
Dengan menggunakan Library ButterKnife, kita tidak perlu menggunakan findViewById pada masing-masing komponen tersebut.

Silakan kalian buka file MainActivity.java, disini kita dapat menginisialisasi View-view yang ada, hanya dengan menggunakan Annotation (@BindView), dan membuat Event dengan Annotation (@OnClick), seperti berikut ini:
package wildan.cianjur.developer.net.libraryexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

 public class MainActivity extends AppCompatActivity {

     //Mendefinisikan View dengan ButterKnife
     @BindView(R.id.input)
     EditText Input;

     @BindView(R.id.output)
     TextView Output;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Berfungsi untuk mengikat views ke dalam Activity/Fragment/Context/View
        ButterKnife.bind(this);
    }

    //Membuat onClickListener pada View yang mempunyai ID submit
    @OnClick(R.id.submit)
     public void getData(){
        String getInput = Input.getText().toString();
        Output.setText(getInput);
        Toast.makeText(this, getInput, Toast.LENGTH_SHORT).show();
     }
}

Jika kita menggunakan library ButterKnife, dalam penamaan package tidak boleh diawali dengan nama android, contoh android.developer.libraryexample, maka akan terjadi error. selain iu juga untuk method menggunakan Annotation @OnClick tidak boleh menggunakan modifier private.

Demo:


Jika masih kurang, kalian dapat melihat referansi lainnya disini.

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.