Alert Dialog | Dasar

Alert dialog, hmm apakah itu? Para pemakai smartphone android bisa dipastikan pernah menjumpai alert dialog. Namun hanya beberapa orang mungkin, yang mengetahui bahwa itu namanya alert dialog. Kurang lebih definisi dari alert dialog adalah dialog/window yang muncul sebagai respon dari sistem yang berfungsi memberikan informasi kepada user saat itu juga dan sebagian dari dialog ini memerlukan respon dari user untuk proses lebih lanjutnya.

 

Banyak contoh penggunaan alert dialog ini, seperti ketika kita sedang bermain game online, dan koneksi tiba-tiba lenyap, biasanya akan muncul alert dialog yang memberitahukan kepada kita, bahwa koneksi terputus dengan server. Lalu ketika menginstal ataupun mengupdate aplikasi dari play store, sering keluar alert dialog yang memberitahukan kepada kita bahwa memori internal tidak cukup ataupun informasi-informasi lainnya.

 

Ditutorial kali ini, kita akan mencoba membuat alert dialog dengan layout bawaan dari device android.

 

Layout

layout

 

Dari layout diatas, kita bisa menginputkan judul dan pesan yang akan terlihat dialert dialog. Selain itu juga ada checkbox, maksud dapat dibatalkan adalah jika checkbox tersebut dicentang, maka ketika alert dialog muncul, alert dialog tersebut bisa dibatalkan dengan menekan tombol back atau kita sentuh dilayar dibagian luar dari alert dialog. Namun jika checkbox diatas tidak dicentang dalam arti alert dialog tidak dapat dibatalkan, maka untuk keluar dari alert dialog harus memilih pilihan yang ditawarkan seperti setuju, tidak setuju, yes, no dan sebagainya.

layout2

 

Xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:padding="5dp"
    tools:context="com.heendher.alertdialog.MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Judul" />

        <EditText
            android:id="@+id/editTextJudul"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >

            <requestFocus />
        </EditText>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Pesan" />

        <EditText
            android:id="@+id/editTextPesan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" />

    </LinearLayout>

    <CheckBox
        android:id="@+id/checkBoxBatalkan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Dapat dibatalkan" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </LinearLayout>

    <Button
        android:id="@+id/buttonTampilkan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:text="Tampilkan" />

</LinearLayout>

 

Tampilan dari alert dialog jika menggunakan bawaan dari device maka tampilannya juga akan menyesuaikan tema dari devicenya dan juga tema dari aplikasi yang dibuat seperti Holo dark atau holo light dan lainnya.

 

Java class

package com.heendher.alertdialog;

 

import android.R.bool;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	Button tampilkanButton;
	EditText judulEditText,pesanEditText;
	CheckBox batalCheckBox;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tampilkanButton = (Button)findViewById(R.id.buttonTampilkan);
		judulEditText = (EditText)findViewById(R.id.editTextJudul);
		pesanEditText = (EditText)findViewById(R.id.editTextPesan);
		batalCheckBox = (CheckBox)findViewById(R.id.checkBoxBatalkan);
		tampilkanButton.setOnClickListener(new OnClickListener() {
		
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
					TampilkanAlertDialogBasic(judulEditText.getText().toString(),pesanEditText.getText().toString(),batalCheckBox.isChecked());
			}
		});
	}

	void TampilkanAlertDialogBasic(String judul, String pesan, boolean cancelable)
	{
		//Berfungsi untuk menyusun setingan alert dialog yang akan ditampilkan
		AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
		
		alertDialogBuilder.setTitle(judul)//Memberikan judul
			.setMessage(pesan)//Memberikan pesan 
			.setCancelable(cancelable)//Apakah alert dialog dapat dibatalkan
			//Button untuk respon positif
			.setPositiveButton("Lanjutkan", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					//Menampilkan toast/pesan bahwa button positif ini ditekan
					TampilkanToast("Button Lanjutkan ditekan");
				}
			} )
			//Button untuk respon negatif
			.setNegativeButton("Batal", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					//Menampilkan toast/pesan bahwa button negatif ini ditekan
					TampilkanToast("Button Batal ditekan");
					//Menutup alert dialog
					dialog.cancel();
				}
			});
		
		
		AlertDialog alertDialog = alertDialogBuilder.create();
		//Menampilkan alert dialog
		alertDialog.show();
	}
	
	void TampilkanToast(String pesan)
	{
		Toast.makeText(getApplicationContext(), pesan, Toast.LENGTH_SHORT).show();
	}
	
	
}

 

Alert dialog bisa kita buat sendiri layoutnya, sehingga bentuk dan warnanya bisa menyesuaikan tema dari aplikasi kita. Tunggu tutorial berikutnya ya, tentang alert dialog dengan custom layout.