Dalam sebuah aplikasi, kotak dialog merupakan sarana interaktif antara user dengan aplikasi itu sendiri. Misalnya jika kita ingin keluar dari aplikasi, biasanya muncul peringatan berisi pertanyaan "Are you sure to quit?" dan tersedia tombol "yes" dan "cancel". Pada bagian ini, kita mengimplementasikan 3 macam dialog yaitu
- Toast
- ListDialog
- AlertDialog
Hasil akhir project ini terlihat seperti gambar 5.2. Oks, langsung kita praktikkan yaap?!

Gambar 5.2. Hasil akhir project Kotak Dialog
1. Bikin sebuah project baru
| Project name | DialogBox |
|------------------|--------------|
| Build Target | Android 2.2 |
| Application name | Kotak Dialog |
| Package name | com.dialog |
| Create Activity | KotakDialog |
| Min SDK version | 8 |
2. Tambahkan 3 string element pada Strings.xml
<string name="app_name">Membuat Kotak Dialog</string>
<string name="toastTextBtn">Panggil Toast</string>
<string name="exitTextBtn">Keluar Applikasi</string>
<string name="listDialogTextBtn">Panggil List Dialog</string>
</resources>
3. Bikin dulu layoutnya melalui Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:layout_width="fill_parent"
android:id="@+id/toastBtn"
android:layout_height="wrap_content"
android:text="@string/toastTextBtn"></Button>
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/listDialogBtn"
android:text="@string/listDialogTextBtn"></Button>
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/exitTextBtn"
android:id="@+id/exitBtn"></Button>
</LinearLayout>
4. Okey, sekarang saatnya menulis kode di activity KotakDialog.java
package com.dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import android.view.View;
public class KotakDialog extends Activity implements
OnClickListener {
Button pesanToast;
Button keluar;
Button tampilList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pesanToast = (Button) findViewById(R.id.toastBtn);
pesanToast.setOnClickListener(this);
keluar = (Button) findViewById(R.id.exitBtn);
keluar.setOnClickListener(this);
tampilList = (Button)
findViewById(R.id.listDialogBtn);
tampilList.setOnClickListener(this);
}
public void onClick(View clicked) {
switch (clicked.getId()) {
case R.id.listDialogBtn:
munculListDialog();
break;
case R.id.toastBtn:
Toast.makeText(this, "Kamu memilih Toast",
Toast.LENGTH_SHORT).show();
break;
case R.id.exitBtn:
exit();
break;
}
}
private void munculListDialog() {
// TODO Auto-generated method stub
final CharSequence[] items = { "Es Teh", "Es Jeruk",
"Lemon Squash","Soft Drink" };
AlertDialog.Builder kk = new AlertDialog.Builder(this);
kk.setTitle("Pilih Minuman");
kk.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item],
Toast.LENGTH_SHORT).show();
}
}).show();
}
private void exit() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Apakah Kamu Benar-Benar ingin keluar?")
.setCancelable(false)
.setPositiveButton("Ya", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
KotakDialog.this.finish();
}
})
.setNegativeButton("Tidak",new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int arg1) {
// TODO Auto-generated method stub
dialog.cancel();
}
}
}
}).show();
Nah, sudah selesai. Silakan dirun, semoga tidak error
Pembahasan Program
Perhatikan KotakDialog.java, saya bagi menjadi 5 blok yang memiliki peran sendiri-sendiri
- Baris 12-14 : deklarasi object Button.
- Baris 19-30 : sinkronisasi object terhadap widget button pada layout main.xml sekaligus mengaktifkan button.
- Baris 33-45 : fungsi pada masing-masing button.
- Baris 48-61 : fungsi yang dipanggil ketika button „panggil list dialog‟ diklik.
- Baris 63-83 : fungsi yang dipanggil ketika button „keluar aplikasi‟ diklik.
Activity ini mengimplementasikan class OnClickListener (baris 11-12). Class ini memiliki sebuah method onClick (baris 33-45) yang bertugas merespon button pada saat diklik. Didalam method onClick(), button direspon berdasarkan idnya melalui perulangan switch-case. Jika button pemilik id „listDialogBtn‟ diklik maka kemudian memanggil fungsi munculListDialog() (baris 58-61), jika button ber-id „toastBtn‟ diklik, maka activity mengenerate sebuah toast, sedangkan jika yang diklik adalah button ber-id „exitBtn‟ maka yang dieksekusi adalah fungsi exit() (baris 63-83).
Sumber
omayib.com