Membuat Sebuah Tombol (Listener) Memiliki Banyak Fungsi

Sebuah tombol pada aplikasi dapat diberikan beberapa atau banyak fungsi. Tombol disini maksudnya adalah objek yang diberikan "listener", tentu tidak harus objek / komponen Button, objek lain seperti Textview, Imageview ataupun Layout dapat diberikan listener.



Dalam menerapkannya kita dapat menggunakan bantuan java switch statement ataupun if-else statement pada String, int, short, long, boolean dan lain sebagainya yang dapat bekerja pada switch atau if-else statement. Namun untuk boolean tentu kita akan mendapatkan hanya 2 fungsi saja karena memang nilai dari boolean hanya 2 (true dan false).

Baik, di artikel ini kita akan membuat 7 fungsi dari sebuah tombol / listener, menggunakan objek Button dengan java switch statement. Tentu Anda dapat membuat sebanyak mungkin yang diinginkan, karena ini hanya contoh.



Misalnya kita ingin mengucapkan salam atau pesan kepada pengguna aplikasi yang baru saja menginstall aplikasi kita. Pada layout activity_main.xml, kita memiliki sebuah Textview dan sebuah Button. Nilai string dari Textview tersebut akan kita buat berubah dan berbeda sebanyak 7 kali setiap kali mengklik tombol. Lalu pada klik yang ke-7 pada tombol, visibility dari Textview dan Button kita hilangkan. Berikut isi layoutnya.

activity_main.xml :
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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=".MainActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:padding="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">

<TextView
android:id="@+id/textPesan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:textSize="25sp"
android:text="Selamat datang!"
android:fontFamily="serif"
android:textColor="@color/colorPrimaryDark"/>

<Button
android:id="@+id/tombolNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Selanjutnya"
android:fontFamily="serif"
android:textSize="25sp"/>

</LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>


Lalu pada MainActivity.java, pertama kita variabelkan dulu sebuah objek string dengan nilai "klik 1", kemudian memvariabelkan sebuah objek Textview dan Button / Tombol untuk kedua komponen view yang ada pada layout diatas. Lalu membuat klik listener untuk Button / Tombol tersebut.



Di dalam klik listener dari tombol tersebut kita sematkan java switch statement untuk objek string yang divariabelkan tadi. Pada statement 1 sampai 6 (dari 7 statement), kita mengganti nilai dari objek string tadi, dan juga mengganti nilai string dari Textview. Pada statement 6, nilai string dari tombol juga diubah menjadi "selesai", dan khusus pada statement 7 tidak diubah nilainya namun dihilangkan visibility nya. Contoh berikut kita menggunakan String java switch statement.

MainActivity.java :
package com.gwnbs.tombol;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private String setKlik = "klik 1";
private TextView textPesan;
private Button tombolNext;

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

textPesan = findViewById(R.id.textPesan);
tombolNext = findViewById(R.id.tombolNext);

tombolNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (setKlik) {
case "klik 1":
textPesan.setText("Terima kasih sudah mengunduh aplikasi ini.");
setKlik = "klik 2";
break;
case "klik 2":
textPesan.setText("Aplikasi ini dirancang khusus untuk kamu yang suka nge-klik tombol.");
setKlik = "klik 3";
break;
case "klik 3":
textPesan.setText("Di desain menarik dan akan mudah untuk dipahami.");
setKlik = "klik 4";
break;
case "klik 4":
textPesan.setText("Antarmuka pengguna yang simpel dan tentunya dukungan 24 jam jika kamu membutuhkan bantuan.");
setKlik = "klik 5";
break;
case "klik 5":
textPesan.setText("Semoga kamu menyukai aplikasi ini. Dan jangan lupa untuk memberikan ulasan kamu tentang aplikasi di Playstore ya..");
setKlik = "klik 6";
break;
case "klik 6" :
textPesan.setText("Klik tombol dibawah untuk mengakhiri pesan sambutan ini.");
setKlik = "klik 7";
tombolNext.setText("Selesai");
break;
case "klik 7" :
textPesan.setVisibility(View.GONE);
tombolNext.setVisibility(View.GONE);
break;
}
}
});
}
}


Bagaimana jika menggunakan object int pada switch statement? Kita hanya perlu merubah variabel object String menjadi int dan mengganti nilai string pada setiap statement menjadi integer (bilangan / angka bulat). Sehingga akan terlihat seperti berikut ini :

MainActivity.java (int switch statement) :
package com.gwnbs.tombol;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private int setKlik = 1;
private TextView textPesan;
private Button tombolNext;

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

textPesan = findViewById(R.id.textPesan);
tombolNext = findViewById(R.id.tombolNext);

tombolNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (setKlik) {
case 1:
textPesan.setText("Terima kasih sudah mengunduh aplikasi ini.");
setKlik = 2;
break;
case 2:
textPesan.setText("Aplikasi ini dirancang khusus untuk kamu yang suka nge-klik tombol.");
setKlik = 3;
break;
case 3:
textPesan.setText("Di desain menarik dan akan mudah untuk dipahami.");
setKlik = 4;
break;
case 4:
textPesan.setText("Antarmuka pengguna yang simpel dan tentunya dukungan 24 jam jika kamu membutuhkan bantuan.");
setKlik = 5;
break;
case 5:
textPesan.setText("Semoga kamu menyukai aplikasi ini. Dan jangan lupa untuk memberikan ulasan kamu tentang aplikasi di Playstore ya..");
setKlik = 6;
break;
case 6 :
textPesan.setText("Klik tombol dibawah untuk mengakhiri pesan sambutan ini.");
setKlik = 7;
tombolNext.setText("Selesai");
break;
case 7 :
textPesan.setVisibility(View.GONE);
tombolNext.setVisibility(View.GONE);
break;
}
}
});
}
}


Int dan model data bilangan lainnya didalam sebuah metode klik listener atau di dalam onCreate activity, nilainya dapat terus berubah (bertambah atau berkurang tergantung dari operasi bilangan) secara otomatis setiap kali tombol tersebut di klik. Pada contoh diatas, di setiap statement kita menuliskan dan merubah nilai dari int itu secara manual.

Dengan memasukkan kode operasi bilangan matematika, maka setiap kali tombol di klik, nilai int akan berubah. Contoh kode misalnya : setKlik = setKlik + 2. Maka setiap kali tombol di klik, nilai int akan bertambah 2, hingga nilai maksimum yang dapat ditampung int.

Seperti contoh diatas, pertama-tama kita hapuskan dulu nilai dari variabel int, kemudian di dalam metode klik tombol sebelum java switch statement kita tuliskan kode operasi bilangan matematika, lalu menghapus semua nilai int pada setiap statement. Maka akan terlihat seperti dibawah ini :

MainActivity.java :
package com.gwnbs.tombol;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private int setKlik;
private TextView textPesan;
private Button tombolNext;

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

textPesan = findViewById(R.id.textPesan);
tombolNext = findViewById(R.id.tombolNext);

tombolNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setKlik = setKlik + 1;
switch (setKlik) {
case 1:
textPesan.setText("Terima kasih sudah mengunduh aplikasi ini.");
break;
case 2:
textPesan.setText("Aplikasi ini dirancang khusus untuk kamu yang suka nge-klik tombol.");
break;
case 3:
textPesan.setText("Di desain menarik dan akan mudah untuk dipahami.");
break;
case 4:
textPesan.setText("Antarmuka pengguna yang simpel dan tentunya dukungan 24 jam jika kamu membutuhkan bantuan.");
break;
case 5:
textPesan.setText("Semoga kamu menyukai aplikasi ini. Dan jangan lupa untuk memberikan ulasan kamu tentang aplikasi di Playstore ya..");
break;
case 6 :
textPesan.setText("Klik tombol dibawah untuk mengakhiri pesan sambutan ini.");
tombolNext.setText("Selesai");
break;
case 7 :
textPesan.setVisibility(View.GONE);
tombolNext.setVisibility(View.GONE);
break;
}
}
});
}
}


Dari kode diatas, nilai awal int adalah 0. Klik pertama akan memberi nilainnya menjadi 1, klik kedua menjadi 2 dan seterusnya hingga 7. Nilai maksimumnya 7 karena saat nilainya berada di 7 kita menghilangkan visibility dari tombol yang tentunya membuat tombol tidak dapat diakses lagi. 

Sekian tutorial sederhana ini, jika ada salah atau kurang harap dimaklumi. Terimakasih, bila ada pertanyaan bisa disampaikan di kolom komentar.

Comments

Post Terpopuler Sepanjang Masa

Cara Memasang Iklan Interstitial AdMob

Cara Memasang Iklan Banner AdMob di Android Studio

Aplikasi Pengingat Tugas (To Do Reminder) Android

Tutorial Menerapkan Animasi Lottie di Android Studio

Cara Merubah Package Name di Android Studio

Membuat Custom Listview di Android Studio

Cara Membuat Custom Icon Vector Asset di Android Studio