Android Uyarı Sistemi - Android Alert Dialog Kullanımı
Merhaba,
Bu yazı ile birlikte Android ile ilgili ilk defa paylaşımda bulunmuş oluyorum, öğrendiklerimi paylaşmayı severim bu sebeple ara-ara buna benzer paylaşımlar yapmayı düşünüyorum.
Bu yazımda Android ile kullanabileceğiniz bir uyarı sınıfı paylaşmak istedim, kendim halihazırda kullanıyorum, sizlerinde uğraşmadan direkt olarak sisteminizin içerisine katıp kullanabileceğiniz bu sınıf, pek çok yerde işinizi oldukça kolaylaştıracaktır.
Görünüm:
Kullanıma gelirsek, yapmanız gereken yeni bir sınıf oluşturup ismini
Ileti.java koymak ve aşağıda sizlerle paylaştığım kodları bu sınıfın içerisine yapıştırarak
package kısmını kendinize göre düzenlemek.
package com.ntg.Siniflar;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import com.ntg.ei.R;
public class Ileti extends Dialog {
private String Mesaj;
private String Baslik;
private int Konum;
private String Evet;
private String Hayir;
private Boolean HayirButonDurumu;
private int Ikon=R.drawable.uyari_simgesi;
private View.OnClickListener EvetListener=null;
private View.OnClickListener HayirListener=null;
public Ileti(Context context, Boolean hayir_buton_durumu) {
super(context);
HayirButonDurumu = hayir_buton_durumu;
}
public Ileti(Context context) {
super(context);
HayirButonDurumu = false;
}
public Ileti(Context context, int themeResId) {
super(context, themeResId);
}
protected Ileti(Context context, boolean cancelable, OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.ileti);
/*ImageView ikonum = (ImageView) findViewById(R.id.IletiIkon);
ikonum.setImageResource(Ikon);*/
TextView tv = (TextView) findViewById(R.id.baslik);
//tv.setCompoundDrawablesWithIntrinsicBounds(Ikon,0,0,0);
tv.setText(getBaslik());
TextView tvmessage = (TextView) findViewById(R.id.mesaj);
tvmessage.setText(getMesaj());
tvmessage.setGravity(getKonum());
Button btYes = (Button) findViewById(R.id.evet);
Button btNo = (Button) findViewById(R.id.hayir);
btYes.setText(Evet);
btNo.setText(Hayir);
btYes.setOnClickListener(EvetListener);
btNo.setOnClickListener(HayirListener);
setCanceledOnTouchOutside(false);
if(HayirButonDurumu == false) btNo.setVisibility(View.GONE);
}
public int getKonum() {
return Konum;
}
public void setKonum(int konum) {
this.Konum = konum;
}
public String getBaslik() {
return Baslik;
}
public void setBaslik(String baslik) {
this.Baslik = baslik;
}
public String getMesaj() {
return Mesaj;
}
public void setMesaj(String mesaj) {
this.Mesaj = mesaj;
}
public void setIkon(int ikon) {
this.Ikon = ikon;
}
public int getIkon() {
return Ikon;
}
public void setButonEvet(String evet, View.OnClickListener onClickListener) {
dismiss();
this.Evet = evet;
this.EvetListener = onClickListener;
}
public void setButonHayir(String hayir, View.OnClickListener onClickListener) {
dismiss();
this.Hayir = hayir;
this.HayirListener = onClickListener;
}
}
Bir adette res klasöründe layout oluşturmamız gerekiyor, bununda ismini ileti.xml olarak verip aşağıdaki kodları yapıştırıyoruz.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/colorWhite">
<LinearLayout
android:id="@+id/ileti"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:gravity="center_vertical"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/IletiIkon"
android:src="@drawable/uyari_simgesi"
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginLeft="10dp"
android:textColor="@color/colorOrange"
/>
<TextView
android:id="@+id/baslik"
android:layout_width="match_parent"
android:layout_height="50dp"
android:padding="10dp"
android:textSize="21sp"
android:textColor="@color/colorDark"
android:textStyle="bold"
android:text="Uyarı !"
/>
</LinearLayout>
<TextView
android:id="@+id/mesaj"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="41dp"
android:padding="10dp"
android:textSize="16sp"
android:text="Uyarı Mesajı..."
android:textColor="@color/colorDark"/>
</LinearLayout>
<LinearLayout
android:layout_below="@+id/ileti"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:gravity="right"
android:orientation="horizontal">
<Button
android:id="@+id/evet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="Evet"
android:textStyle="bold"
android:textSize="14dp"
android:background="@android:color/transparent"
android:textColor="@color/colorGreen2"
/>
<Button
android:id="@+id/hayir"
android:background="@android:color/transparent"
android:textColor="@color/colorDark"
android:layout_margin="5dp"
android:text="Hayır"
android:textSize="14dp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
Şimdi ise kullanmak istediğiniz yere ve kullanmak istediğiniz şekle göre aşağıdakilerden herhangi birini kullanabilirsiniz.
Evet / Hayır seçenekli olarak kullanmak için bu kodu kullanmanız gerekiyor.
final Ileti uyari = new Ileti(context, true);
uyari.setBaslik("Uyarı");
uyari.setMesaj("Silmek istediğinize emin misiniz?");
uyari.setButonEvet("Evet", new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
uyari.dismiss();
// işlem yapacak kodlarınız
} catch (Exception e) {
e.getStackTrace();
}
}
});
uyari.setButonHayir("Hayır", new View.OnClickListener() {
@Override
public void onClick(View view) {
uyari.dismiss();
}
});
uyari.show();
Sadece uyarı verdirmek için bunu kullanmanız gerekiyor.
final Ileti uyari = new Ileti(context, false);
uyari.setBaslik("Uyarı");
uyari.setIkon(android.R.drawable.ic_dialog_alert);
uyari.setMesaj(mesaj);
uyari.setButonEvet("Tamam", new View.OnClickListener() {
@Override
public void onClick(View view) {
uyari.dismiss();
}
});
uyari.show();