30 Mayıs 2011 Pazartesi

Android Serisi 4. Bölüm - AlertDialog.Builder Sınıfı ve Dialog Kutuları

Merhaba arkadaşlar, tekrar birlikteyiz.

Konumuz gayet basit olmakla birlikte yazılım uygulamalarının da olmazsa olmazlarından biri. Biz yine lafı uzatmadan örnekle hemen işe koyulalım.

Senaryo şu; bir düğme var, kullanıcı düğmeye bastığında karşısına bir dialog box çıkacak. Sorulan soruya evet derse title değiştirilip rengi sarıya dönüştürülecek. Hayır derse bir mesajla bu seçimi kullanıcıya belirtilecek.

BuilderOrnek adinda bir proje yaratıyorum. Activity'imin adı ise Main.

Layout > main.xml dosyasını aşağıdaki gibi editliyorum.

<?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"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/lblTitle"
/>

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="BuilderDeneme"
android:text="Tıklandığında Alert oluşacak"
android:id="@+id/btnBuilder"
/>
</LinearLayout>

Son olarak Main.java activity'imi açıp aşağıdaki gibi düzenliyorum.

package com.builderornek;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class Main extends Activity {
private final Context context = this; //context'imizi globalleştiriyoruz.

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

//btnBuilder'a tıklandığında aşağıdaki method çalışacak.
public void BuilderDeneme(final View v){
//Dialog nesnesi oluşturuluyor.
AlertDialog.Builder builder = new AlertDialog.Builder(context);
//Kullanıcıya gösterilecek mesaj oluşturuluyor.
builder.setMessage("Devam ederek başlık yazısını değiştirmek istediğinizden emin misiniz?");
//Cancel buttonu iptal ediliyor (örnek olması amacıyla koydum)
builder.setCancelable(false);
//Kullanıcı tamam diyerek devam etmek istediğinde (true response'unda yapılacaklar.)
builder.setPositiveButton("Evet", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
TextView lblTitle = (TextView)findViewById(R.id.lblTitle);
lblTitle.setTextColor(Color.YELLOW);
lblTitle.setText("baslik değiştirildi ve rengi sarı oldu.");
}
});

//kullanıcı iptal diyerek devam etmek istediğinde. (false)
builder.setNegativeButton("Hayır", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "Bir değişiklik yapılmadı", Toast.LENGTH_SHORT).show();
}
});

//builder dialogumuzu kullanıcıya gösteriyoruz.
builder.show();
}

}

ve işte sonuç;



Dosya İsmi: BuilderOrnek.rar
Dosya Boyutu:41.49 KB

Hiç yorum yok:

Yorum Gönder