Android Dialog Example

Merhaba arkadaşlar , ara sıra vakit buldukça ve öğrendikçe elimden geldiğince öğrendiğimi paylaşmaya çalışıyorum. Bu makalemde android uygulamalarda dialog kullanımını elimden geldiğince anlatmaya çalışacağım. Öncelikle nedir bu dialog ona bir değinelim. Dialog Activity'i geri planda bırakarak ufak bir pencerede açılan web browserlarda ki popup'a da benzetebildiğimiz bir elemandır diyebiliriz.

Neye benzediğini aşağıda ki fotoğraftan daha net anlayabiliriz :) 

 

Öncelikle layout klasörümüze sağ tıklayıp yeni bir layout ekliyoruz. Bu eklediğimiz layoutun içinde text kısmına aşağıda ki kodu ekliyoruz. Bu kod dialog penceremizin içinde hangi elemanların bulunacağını gösteren normal bir layout nesnesi diyebiliriz.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >



    <TextView
        android:id="@+id/kosul"
        android:layout_margin="16dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="13sp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Anladım"
        android:layout_margin="16dp"
        android:id="@+id/dialogButtonOK"
        android:textColor="#FFFFFF"
        android:paddingLeft="10px"
        android:paddingRight="10px"
        android:layout_weight="1"
        android:background="@drawable/buttonlar"
        android:layout_alignBottom="@id/kosul"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />


</RelativeLayout>

 

Layoutumuzu oluşturduktan sonra dialog açılmasını istediğimiz java classımızı açıyoruz. Ben bir textview'e tıklandıktan sonra açılmasını istediğim için classımın hemen başında global olarak bir textview tanımladım ve bir de content tanımladım final dememin sebebi o değişkenin bir daha kullanılmasını engellemek.

final Context context = this;
private TextView textview; 

Sonra ilgili fonksiyonumun içine girerek oluşturduğum textview'i tıklanmasını istediğim textview'e atadım ve  bir set onclick listener metodu yarattım - Yani dinleyici ile birlikte başlattık diyebiliriz -   Sonrasında bir dialog nesnesi oluşturdum ve oluşturduğum dialog nesnesine bir set metodu uyguladım bu set metodu ile ilk başta oluşturduğumuz layoutu dialog'un contenti'ne atadım.

textview = (TextView) findViewById(R.id.buttonShowCustomDialog);
textview.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.sozlesme);

Daha sonra sıra geldi dialog pencereme bir title set etmeye 

dialog.setTitle(Html.fromHtml("<font color='#990000'>Kullanım Şartları </font>")); 

Title içinde html tagları kullanmak için Html.fromHtml kullandım.

Bir de bir buton a kapatarak pencerenin kapanması için bir buton tanımlayıp layouttaki butonu bu oluşturduğum buton nesnesine atadım ve butona da bir onclick listener metodu oluşturdum. Butona tıklandığında oluşturduğumuz dialog nesnesi dismis yani kapanmış olacak. 

Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
        dialogButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        dialog.show();
    }
});

Evet yapmamız gereken herşey bu kadar. Tabi  dialog , buton ve onclikListener kütüphanelerimizi de en başa eklemeyi unutmayalım. 

import android.widget.Button;
import android.app.Dialog;
import android.view.View.OnClickListener;

Sorusu olan arkadaşlar besimvatan@gmail.com adresine mail atabilir.

 

 

 


30.03.2016 11:08:36

Merhaba. Web siteme hoşgeldiniz. Sitemde özgeçmişimi sertifika bilgilerimi ve bu güne kadar uygulamaya aldığım çalışmaları bulabilirsiniz. Herhangi soru sormak veya bana ulaşmak için İletişim sayfasında yer alan iletişim formunu kulanabilirsiniz.

Gönülden istemek ve emek harcamak.
İşte tüm mesele bu.
30 Agust
#DGSaçıklanmadığıHerSaat @OSYMbaskanligi
Açıklayamadıklarınızdan mıyız ?
23 Agust
Makalelerimi İlk Sen Oku!