Android Programlama: Button Kullanımı & Event Ekleme

Butonlar kullanıcıya programınızı kontrol etmeye yönelik tasarlanmış arayüz komponentleridir. Bu komponentler arayüz tasarlanırken sıkça kullanılır. Kullanıcıdan önceden belirlenmiş yanıtlar alabilmek için de butonları kullanabilirsiniz. Örnek olarak mesaj kutularındaki "Evet" "Hayır" düğmeleri verilebilir. Android'de programlanmaları oldukça basit bir şekilde gerçekleştirilebilir.

Butonları Layout'a Eklemek

Butonları arayüzünüze aşağıdaki gibi ekleyebilirsiniz (yada paletten seçerek sürükleyip bırakabilirsiniz)

<Button
        android:id="@+id/ilkButonum"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Mesaj Göster!"/>

Burada id özelliği, butona arkaplan kodu üzerinden ulaşabilmek için kullanılır. layout_width özelliği "match_parent" olarak ayarlanarak butonun yatay olarak tüm ekranı kaplaması ve layout_height özelliği "wrap_content" olarak ayarlanarak butonun dikey olarak sadece metni sığdıracak kadar uzaması sağlanır. text değeri butonun üzerinde görüntülenecek metindir.

Kodun tamamını bir layout ile birlikte kullanmak için (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.androiduygulamam1.MainActivity">

    <Button
        android:id="@+id/ilkButonum"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Mesaj Göster!"/>

</RelativeLayout>

Bu kodu layout'unuza eklediğinizde sonuç aşağıdakine benzer olacaktır.


Şimdi arkaplan kodu ile bu butona erişip dokunma durumunda tepki vermesini nasıl sağlayabileceğimize bir bakalım.

Öncelikle Button sınıfını widget paketinden import etmemiz gerekiyor.

import android.widget.Button;

Ardından butona erişmek amacıyla belirttiğimiz ID üzerinden butona kodla erişebilmek için findViewById fonksiyonunu kullanabiliriz.

 Button ilkButonum = findViewById(R.id.ilkButonum);

Buton dokunulduğunda yada tıklandığında bir işlem gerçekleştirebilmek için bir dinleyici eklememiz gerekiyor.

 ilkButonum.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Yapılacak işlem buraya
            }
        });

Artık onClick fonksiyonunun içinde istediğimiz işlemleri gerçekleştirebiliriz.

Arkaplan kodunun tamamı (MainActivity.java)



import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Butona ID si üzerinden erişiyoruz
        Button ilkButonum = findViewById(R.id.ilkButonum);

        // Dokunma olayına karşı dinleyici ekliyoruz.
        ilkButonum.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Dokunulduğunda (yada tıklandığında) bir uyarı diyaloğu gösteriyoruz.
                AlertDialog.Builder mesaj = new AlertDialog.Builder(MainActivity.this);
                mesaj.setTitle("Diyalog başlığı");
                mesaj.setMessage("Bu bir mesajdır!");
                mesaj.show();
            }
        });
    }
}


Kullanıcı butona dokunduğunda bir uyarı diyaloğu gösterilecek ve diyaloğun dışında herhangi bir yere dokunduğunda yada telefonundaki geri tuşuna bastığında kapatılacak.

Uygulamayı çalıştıralım



Yorumlar



Bu blogdaki popüler yayınlar

C# LAN üzerinde TCP Bağlantısı ile Veri Aktarımı (Konsol)

Android Programlama: EditText Kullanarak Kullanıcıdan Girdi Almak

Bilgisayarınızın IP adresini nasıl öğrenirsiniz?

İşletim Sistemleri Türleri (Single Task, Multitask ve RTOS)

Ağ Topolojileri nelerdir? Hangi topoloji bir ağ için daha uygun?