Android Studio Alert Dialog

Android studio’da Alert Dialog konusuna geldik. Alert Dialog bizim ufak bir pencere ile yönlendirmeler yapmamıza yarayan bir uygulama kullanıcı diyalog penceresi diyebiliriz. Çünkü ufak bir pencere açılır ve ne yapmak istersiniz diye sorar. Örneğin Aşağıdaki resimde ki gibi..

2015-08-07_17h20_43

Alert Dialog kullanarak bir mesajı kullanıcıya sunabiliriz. Mesela geri tuşuna basınca uygulamadan çıkmak mı istiyorsunuz ya da bir butona basınca bir uyarı penceresi çıkarabiliriz. Birazdan onun örneğini görüceğiz.

Öncelikle Kodlara Geçelim.. Layout kısmında bir işlem yapmamıza gerek yok. Sadece bir button atın ve Android Manifest’te de bir işleme gerek yok. Hepsi sadece java kodu ile hallediceğiz. Öncelikle geri buttonuna basınca gitmesi kısmı..

 public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
//Eğer geri butonuna basılırsa

Burasını öncelikle code -> Override -> onKeyDown kısmından getirin.sonrasında ise keyCode’a bir tıklama olayında ki Arka Back tuşuna basılırsa algılamasını istiyoruz.

  final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("Uyarı !!");
                builder.setMessage("Web sitesi Açılsın mı?");
                builder.setCancelable(false);
                builder.setIcon(R.drawable.a);

                builder.setPositiveButton("Evet", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, "Açılıyor.", Toast.LENGTH_LONG).show();
                    }
                });
                builder.setNegativeButton("Hayır", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, "Pekala.", Toast.LENGTH_LONG).show();
                    }
                });

                AlertDialog dialog = builder.create();
                dialog.show();
            }

 

Uygulamada ki 2 kısımda ki kodlar da aşağıda. AlertDialog mantığını anlatıyorum. Öncelikle bir kütüphaneden bulunan activity’de bir alertDialog pencere oluşturulması istendi.

builder.setTittle: En yukarda ki uyarı..

builder.setMassage : Kullanıya sunucağınız seçenek, mesaj..

builder.setCancelable(false) : Burada ki false bu mesajı cevaplamadan dialoga bir cevap vermeden dialog kapanmıycak demek. True ya da yazmazsanız o zamanda ekranda bir yere tıklayarak bu kısımdan kurtulabilir. Yani dialogumuzu cevaplama zorunluluğu kılıyoruz.

Geri kalan işlemler de evet ve hayır adında iki kısım oluşturup yapılan cevaba göre toast mesaj göstermek ya da geri butonunda ki gibi uygulamayı kapatmak.

Uygulamanın kodları ve çalışma resimleri aşağıdadır. Başarılar..

Kodlar :

package com.umiitkose.egitim2;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
//Eğer geri butonuna basılırsa

            try{
                AlertDialog.Builder alertDialogBuilder=new AlertDialog.Builder(this); //Mesaj Penceresini Yaratalım
                alertDialogBuilder.setTitle("Programdan Çıkılsın Mı?").setCancelable(false).setPositiveButton("Evet", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int id) { //Eğer evet butonuna basılırsa
                        dialog.dismiss();
                        android.os.Process.killProcess(android.os.Process.myPid());
//Uygulamamızı sonlandırıyoruz.
                    }

                }).setNegativeButton("Hayır", new DialogInterface.OnClickListener() {
//Eğer hayır butonuna basılırsa

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "Programdan çıkmaktan vazgeçtiniz.", Toast.LENGTH_SHORT).show();
                    }
                });

                alertDialogBuilder.create().show();
//son olarak alertDialogBuilder'ı oluşturup ekranda görüntületiyoruz.
                return super.onKeyDown(keyCode, event);
            }
            catch(IllegalStateException e){  //yapımızı try-catch blogu içerisine aldık
                //hata ihtimaline karşı.
                e.printStackTrace();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
final Button a=(Button)findViewById(R.id.button);
        a.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("Uyarı !!");
                builder.setMessage("Web sitesi Açılsın mı?");
                builder.setCancelable(false);
                builder.setIcon(R.drawable.a);

                builder.setPositiveButton("Evet", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, "Açılıyor.", Toast.LENGTH_LONG).show();
                    }
                });
                builder.setNegativeButton("Hayır", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this, "Pekala.", Toast.LENGTH_LONG).show();
                    }
                });

                AlertDialog dialog = builder.create();
                dialog.show();
            }

    });
}}

 

2015-08-07_17h22_02 2015-08-07_17h22_10

 

 

Yazar: umiitkose

1 thought on “Android Studio Alert Dialog

    Besim Öznalçin

    (16 Mayıs 2016 - 19:52)

    Gerçekten çok başarılı bir site diğer makaleleri de okudum hepsi çok işime yaradı çok teşekkür ederim

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir