Bu yazımızda da buton ekleme işlemine farklı bi yönden bakacağız
@Override
public
void
onCreate
işleminde butonları id ile eşleştirdikten sonra başka bir fonksiyona gitmeden direk onCreate işleminde butonların click() eventlarını da tanımlayarak butonlara bastığımızda ne yapılmasını istiyorsak direk olarak onCreate işleminde belirteceğiz. Farklı yollardan yapmak için isterseniz 1. ve 3.yazıma da göz atabilirsiniz (1.yazıyı oku) (3.yazıyı oku)...
Ö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 de bu butona basıldığında ne işlem yapacağımızı belirtmemiz gerekiyor. işte giriş kısmında belirttiğim 3farklı yol bundan sonrasında devreye giriyor. Genel olarak bir butona üstteki işlemlerden sonra Click() işlevini aşağıdaki gibi ekleriz
button1.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
}
});
Örnek projemiz üzerinden olaya bakacak olursak;
ornekler\src\com\farukunal\ornekler\ButonOrnek2.java
package
com.farukunal.ornekler;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.Toast;
public
class
ButonOrnek2
extends
Activity {
Button button1;
Button button2;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.butonornek2);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
ToastFK(
"Buton1 e basıldı"
);
}
});
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
ToastFK(
"Buton2 ye basıldı"
);
}
});
}
public
void
ToastFK(String msj)
{
Toast.makeText(
this
, msj,
Toast.LENGTH_SHORT).show();
return
;
}
}
ornekler\res\layout\butonornek2.xml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
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"
/>
</
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.ButonOrnek2"
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
Buton1 e bastığımız zaman kod kısmında Toast ileButon1 e basıldı yazmasını istemiştik
button1.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
ToastFK(
"Buton1 e basıldı"
);
}
});
Buton2 ye bastığımızda ise kod kısmında belirttiğimiz üzere Toast çıkacak ve buton2 ye basıldı yazacak.
button2.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
ToastFK(
"Buton2 ye basıldı"
);
}
});