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..
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ı..
1 2 3 |
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.
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 |
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 :
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 82 83 84 85 86 87 88 89 90 91 92 |
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(); }
}); }} |
Henüz Yorum Yapılmamış, İlk Yorumu Siz Yapın