Button Click Olayını Yakalamak
Bu makalede Butonun tıklama olayını nasıl yakalayacağımızı anlatacağım.
Butonun OnClickListener özelliğini set etmemiz gerekir. Butona özel OnClickListener tanımlayabileceğimiz gibi ekrandaki tüm butonlar için ortak bir OnClickListener tanımlayabiliriz.
Tüm butonlar için ortak listener tanımlamak için Activity sınıfımızda OnClickListener interface’ini implemente ederiz.
import android.view.View.OnClickListener; public class MerhabaAndroidActivity extends Activity implements OnClickListener
OnClickListener interface’inde onClick methodu gelir. Bu methodta View tipinde bir parametre vardır. Bu tıklanan butonu temsil eder.
@Override
public void onClick(View v)
{
int tiklananButonId = v.getId();
if(tiklananButonId == R.id.buttonGiris)
{
GirisIslemi();
}
}
Ekranımızda birden fazla buton olabileceği için bu methodu hangi butonun tetiklediğini View tipindeki parametrenin Id sine bakarak karar verebiliriz.
Butonumuzun interface ile beraber gelen onClick methodunu kullanması için Activity sınıfımızın onCreate methodunda buttonGiris.setOnClickListener(this);
şeklinde belirtiyoruz.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonGiris.setOnClickListener(this);
}
Aşağıdaki örnekte basitçe bir login ekran tasarım örneği bulunmaktadır.
main.xml dosyası :
<?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"> <EditText android:hint="@string/kullaniciAdiGir" android:id="@+id/editTextKullaniciAdi" android:layout_height="wrap_content" android:layout_width="170dp"> </EditText> <EditText android:hint="@string/sifreGir" android:id="@+id/editTextSifre" android:layout_width="170dip" android:layout_height="wrap_content" android:layout_below="@+id/editTextKullaniciAdi" android:inputType="textPassword"> </EditText> <Button android:text="Giriş" android:id="@+id/buttonGiris" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editTextSifre" android:layout_alignRight="@+id/editTextSifre"></Button> <EditText android:id="@+id/editTextSonuc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/buttonGiris" android:layout_alignParentLeft="true" android:layout_alignRight="@+id/buttonGiris"> </EditText> </RelativeLayout>
res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Merhaba Kadir Has</string> <string name="app_name">Merhaba Android</string> <string name="kullaniciAdiGir">Kullanıcı Adı </string> <string name="sifreGir">Şifre</string> <string name="basariliGiris">Başarılı Giriş</string> <string name="basarisizGiris">Kullanıcı Adı veya Şifre Yanlış</string> <color name="kirmizi">#FF0000</color> <color name="yesil">#00FF00</color> </resources>
Activity sınıfımız (MerhabaAndroidActivity):
package ceturk.egitim;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MerhabaAndroidActivity extends Activity implements OnClickListener {
Button buttonGiris;
EditText editTextKullaniciAdi;
EditText editTextSifre;
EditText editTextSonuc;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonGiris = (Button)findViewById(R.id.buttonGiris);
editTextKullaniciAdi = (EditText)findViewById(R.id.editTextKullaniciAdi);
editTextSifre = (EditText)findViewById(R.id.editTextSifre);
editTextSonuc = (EditText)findViewById(R.id.editTextSonuc);
buttonGiris.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
int tiklananButonId = v.getId();
if(tiklananButonId == R.id.buttonGiris)
{
GirisIslemi();
}
}
private void GirisIslemi()
{
String kullaniciAdi = editTextKullaniciAdi.getText().toString();
String sifre = editTextSifre.getText().toString();
String sonuc="";
int renkId=0;
if(kullaniciAdi.equals("mehmet") && sifre.equals("aca"))
{
//sonuc ="Başarılı Giriş";
sonuc = getResources().getString(R.string.basariliGiris);
renkId = R.color.yesil;
}
else
{
sonuc = getResources().getString(R.string.basarisizGiris);
renkId = R.color.kirmizi;
}
editTextSonuc.setText(sonuc);
editTextSonuc.setTextColor(getResources().getColor(renkId));
}
}
Ekran Görüntüsü

Uygulamanın kaynak kodunu indirmek için tıklayınız
İyi Çalışmalar.
Mehmet Aca













Android’te Grafik Kaynakları-2 : View Nesnelerine Hareket Kazandırmak
Android’te Grafik Kaynakları-2 : View Nesnelerine Hareket Kazandırmak
IBM Yazılım Akademisi 2011
C#’a GENEL BAKIŞ
Kullanıcı Tahminli Sayı Tahmin Oyunu