ANASAYFA | BLOG | SORU CEVAP | REFERANSLARIM | DOWNLOAD | HAKKIMDA | İLETİŞİM | ARAMA
ANDROİD BUTON EKLEME - 3.yol switch-case if

Bu yazımızda ise butonları OnClickListener ile onClick fonksiyonunu Override ederek butonların yapacağı işlemleri burada belirteceğiz. 

public void onClick(View view) fonksiyonu View girdisini alan bir fonksiyon. Bizde butonlarımızdan click event çağırırken her butonu aynı fonksiyona yönlendirdiğimizden [click()] fonksiyon içerisinde hangi butondan geldiğini kontrol ederek ona göre işlem yaptırmamız gerekiyor. Ben burda hem view üzerinden if ile kontrol ederek, hemde id üzerinden switch-case ile kontrol ederek click() fonksiyonunu override ederek kullanmayı göstereceğim.
2.yazıyı oku
 1.yazıyı oku ...

FK-gizle

Öncelikle xml kısmımızda kullanacağımız butonu tasarlıyoruz

<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button1" />

Burda atadığımız id ile kod kısmında bu butona erişip, gerekli işlemleri yapmasını sağlayacağız.

Daha sonra kod kısmında ise bu butona erişebilmek için

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

Üstte yazdığım kod satırı gibi öncelikle bi buton oluşturuyoruz ve ardından bu buton ile id si button1 olan butonun eşleştiğini, yani kod kısmında button1 id li butonu kullandığımızı belirtiyoruz.

Şimdi ise bu şekilde oluşturduğumuz butonların click() işlemini belirteceğiz. Bunun için öncelikle java kodumuzda class ımızın devamına implements OnClickListener eklememiz gerekiyor. Yani şu şekilde olmalı

...extends Activity implements OnClickListener
daha sonra tanımladığımız butonlara 
button1.setOnClickListener(this);
seklinde click işlemi için atama yapıyoruz.

Bu şekilde tanımladığımız butonlar işlem yapmak için click() fonksiyonuna gelecektir.  Burda ise istersek switch-case ile istersek de if ile kontrol yaparak hangi butondan geldiğine bakıp, o butona özel işlem yaptırabiliriz. İstersek direk view adından(name) istersek de o view e özgü id üzerinden işlem yaptırabiliriz.

@Override
    public void onClick(View view) {
        /*istersek switch-case yapısı ile
         * istersek de if ile
         * istersek id ile
         * istersek de view ile hangi butona
         * basıldığını kontrol edip
         * gerekli işlemi yaptırabiliriz
         * */
        switch (view.getId()) {
        case R.id.button1 :
            ToastFK("Buton1 e basıldı");
            break;
        case R.id.button2 :
            ToastFK("Buton2 ye basıldı");
            break;
        default:
            break;
        }
        
        /*buton3 e buton33 ve buton4 e buton44
         * deme sebebim burada farkı gösterebilmekti
         * burda view adını vererek karşılaştırıyoruz
         * yukarıdakinde ise id lerinden karşılaştırıyoruz
         * */
        if (view == button33) {
            ToastFK("Buton3 e basıldı");
        } else if (view == button44) {
            ToastFK("Buton4 e basıldı");
        } else {
           
        }
    }

 

Örnek projemiz üzerinden olaya bakacak olursak;

 

ornekler\src\com\farukunal\ornekler\ButonOrnek3.java

package com.farukunal.ornekler;
 
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
/* --implements OnClickListener--
 * kullanacağız
 * */
 
public class ButonOrnek3  extends Activity implements OnClickListener{
 
    Button button1;
    Button button2;
    Button button33;
    Button button44;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.butonornek3);
 
        
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
        button33 = (Button) findViewById(R.id.button3);
        button44 = (Button) findViewById(R.id.button4);
        
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button33.setOnClickListener(this);
        button44.setOnClickListener(this);
        
    }
    
    
    @Override
    public void onClick(View view) {
        /*istersek switch-case yapısı ile
         * istersek de if ile
         * istersek id ile
         * istersek de view ile hangi butona
         * basıldığını kontrol edip
         * gerekli işlemi yaptırabiliriz
         * */
        switch (view.getId()) {
        case R.id.button1 :
            ToastFK("Buton1 e basıldı");
            break;
        case R.id.button2 :
            ToastFK("Buton2 ye basıldı");
            break;
        default:
            break;
        }
        
        /*buton3 e buton33 ve buton4 e buton44
         * deme sebebim burada farkı gösterebilmekti
         * burda view adını vererek karşılaştırıyoruz
         * yukarıdakinde ise id lerinden karşılaştırıyoruz
         * */
        if (view == button33) {
            ToastFK("Buton3 e basıldı");
        } else if (view == button44) {
            ToastFK("Buton4 e basıldı");
        } else {
           
        }
    }
    
    public void ToastFK(String msj)
    {
        Toast.makeText(this, msj,
                Toast.LENGTH_SHORT).show();
        return;
    }
}

 

 

ornekler\res\layout\butonornek3.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
     <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Button1" />
 
    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Button2" />
 
    <Button
        android:id="@+id/button3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Button3" />
 
    <Button
        android:id="@+id/button4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Button4" />
 
</LinearLayout>

 

ornekler\AndroidManifest.xml

    package="com.farukunal.ornekler"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        
         <activity
            android:name="com.farukunal.ornekler.ButonOrnek3"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
         
    </application>
    
    
 
</manifest>
 


Projemizi ilk çalıştırdığımızda karşımıza gelecek olan ekran çıktısı aşağıdaki gibi olacaktır

android-örnek-buton

 

Buton1 e ve Buton2 ye bastığımız zaman kod kısmında Buton1 e basıldı yada Buton2 ye basıldı şeklinde Toast çıkmasını istemiştik

case R.id.button1 :
            ToastFK("Buton1 e basıldı");
            break;
case R.id.button2 :
            ToastFK("Buton2 ye basıldı");
            break;

android-buton-ekleme

 

Buton3 yada Buton4 e bastığımızda ise kod kısmında belirttiğimiz üzere Toast çıkacak ve buton3 e yada Buton4 e basıldı yazacak. (Bastığımız butona göre)

/*buton3 e buton33 ve buton4 e buton44
         * deme sebebim burada farkı gösterebilmekti
         * burda view adını vererek karşılaştırıyoruz
         * yukarıdakinde ise id lerinden karşılaştırıyoruz
         * */
        if (view == button33) {
            ToastFK("Buton3 e basıldı");
        } else if (view == button44) {
            ToastFK("Buton4 e basıldı");
        } else {
           
        }
 
android-buton-ekleme
 
 



Diğer Yazılarımdan Seçmeler...