Bu yazıda, kapsamlı bir Android Alert Dialog Kutusu Örneği sunuyoruz. Bazen uygulamalarımızda kullanıcıyı bir olay için uyarmak ve/veya ona bir karar vermesini sormak isteriz. Bu amaçla, bir açılır pencerede bir mesajın ve bir, iki veya üç düğmenin görüntülendiği AlertDialog sınıfı kullanılabilir.
Bu örnekte, her biri farklı bir eyleme yol açan üç farklı Button ile bir AlertDialog göstereceğiz. Positive butonunda yeni bir Activity açıp, Negative butonunda Toast mesajı ile bilgi vereceğiz. Ayrıca Cancel butonu ile de uygulamadan çıkış yapacağız.
Uygulamanın çalışan bir örneği için aşağıdaki videoya göz atabilirsiniz.
Adım adım uygulamayı hazırlayalım.
Android Alert Dialog Kullanımı
Adım 1: Android Studio IDE’yi açıp New Empty Activity oluşturun. Ardından aşağıdakine benzer şekilde isimlendirin.

Adım 2: activity_main.xml dosyasını açıp aşağıdaki gibi bir tane Button ve TextView nesnesi ekleyin.

activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?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"> <TextView android:id="@+id/textMesaj" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:text="Mesaj..." android:textSize="34sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/btnMesaj" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="80dp" android:text="AlertDialog Aç" android:textSize="24sp" app:layout_constraintEnd_toEndOf="@+id/textMesaj" app:layout_constraintHorizontal_bias="0.488" app:layout_constraintStart_toStartOf="@+id/textMesaj" app:layout_constraintTop_toBottomOf="@+id/textMesaj" /> </androidx.constraintlayout.widget.ConstraintLayout> |
Adım 3: Olumlu cevap durumunda gösterilmek üzere bir tane Intent oluşturuyoruz.
Project sekmesinde app klasörü üzerinde sağ tıklayarak New → Activity → Empty Activity yapıp Activity Name adını OlumluCevap yapın.

Adım 4: activity_olumlu_cevap.xml dosyasını açıp tasarımı aşağıdaki gibi yapıyoruz.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?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=".OlumluCevap"> <TextView android:id="@+id/textOlumlu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cevabınız Olumlu" android:textSize="34sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> |
Adım 5: Uygulamadaki MainActivity.java dosyasına geçip openAlert adında void bir metod oluşturuyoruz. Parametre olarak da View nesnesini veriyoruz. AlertDialog nesnesinin öğeleri alağdaki görselde gösterildiği gibi ayarlanarak oluşturulmaktadır.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | //Butona tıklayınca AlertDialog oluşturup açacağız. private void openAlert(View view) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this); alertDialogBuilder.setTitle(this.getTitle()+ " karar"); alertDialogBuilder.setMessage("Kararınız Nedir?"); // set Positive button: Evet cevabından yapılacaklar alertDialogBuilder.setPositiveButton("Evet",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // Yeni bir intent oluşturup OlumluCevap Activity'yi açıyoruz. Intent positveActivity = new Intent(getApplicationContext(), OlumluCevap.class); startActivity(positveActivity); } }); // set Negative button: Hayır cevabında yapılacaklar alertDialogBuilder.setNegativeButton("Hayır",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // Dialog iptal edildiğinde ekrana TOast Mesajı ile uyarı veriyoruz. dialog.cancel(); Toast.makeText(getApplicationContext(), "İşlemi iptal ettiniz.", Toast.LENGTH_LONG).show(); } }); // set neutral button: Uygulamadan çıkış yap alertDialogBuilder.setNeutralButton("UYGULAMADAN ÇIK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // Uygulamadan çıkış MainActivity.this.finish(); } }); AlertDialog alertDialog = alertDialogBuilder.create(); // AlertDialog nesnesini göster alertDialog.show(); } |
openAlert metodunu btnMesaj butonunun tıklama olayına aşağıdaki gibi bağlıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | private Button btnMesaj; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnMesaj = findViewById(R.id.btnMesaj); btnMesaj.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Oluşturduğumuz metodu çalıştırıyoruz. openAlert(view); } }); } |
MainActivity.java dosyasının son hali şu şekilde olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | package com.example.uygulamaalertdialog; import androidx.appcompat.app.AppCompatActivity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button btnMesaj; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnMesaj = findViewById(R.id.btnMesaj); btnMesaj.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Oluşturduğumuz metodu çalıştırıyoruz. openAlert(view); } }); } //Butona tıklayınca AlertDialog oluşturup açacağız. private void openAlert(View view) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this); alertDialogBuilder.setTitle(this.getTitle()+ " karar"); alertDialogBuilder.setMessage("Kararınız Nedir?"); // set Positive button: Evet cevabından yapılacaklar alertDialogBuilder.setPositiveButton("Evet",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // Yeni bir intent oluşturup OlumluCevap Activity'yi açıyoruz. Intent positveActivity = new Intent(getApplicationContext(), OlumluCevap.class); startActivity(positveActivity); } }); // set Negative button: Hayır cevabında yapılacaklar alertDialogBuilder.setNegativeButton("Hayır",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // Dialog iptal edildiğinde ekrana TOast Mesajı ile uyarı veriyoruz. dialog.cancel(); Toast.makeText(getApplicationContext(), "İşlemi iptal ettiniz.", Toast.LENGTH_LONG).show(); } }); // set neutral button: Uygulamadan çıkış yap alertDialogBuilder.setNeutralButton("UYGULAMADAN ÇIK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // Uygulamadan çıkış MainActivity.this.finish(); } }); AlertDialog alertDialog = alertDialogBuilder.create(); // AlertDialog nesnesini göster alertDialog.show(); } } |
Uygulamayı çalıştırdığımızda aşağıdaki gibi çalışacaktır.
Eğer AlertDialog nesnesine ICON eklemek isterseniz. AlertDialog nesnesinden bir tane örnek oluşturduktan sonra aşağıdaki gibi icon kodunu ekleyebilirsiniz.
1 2 3 4 | //Resource klasörüne eklenen uyari.png dosyası alertDialogBuilder.setIcon(R.drawable.uyari); |
Resource klasörüne ilgili görseli eklemeyi unutmayın. Bu örnekte resource klasörüne uyari.png adında bir resim dosyası ekledik.

