Android’de CheckBox, işaretli (Onaylı) veya işaretsiz (Onaysız) olabilen iki durumlu bir düğmedir ve kullanıcıların gereksinimlere göre iki durum (Onaylı/ Onaysız) arasında geçiş yapmasına olanak tanır.
Genel olarak, kullanıcıların değerler kümesinden bir veya daha fazla seçenek seçmesine izin vermek için Android uygulamasında birden fazla CheckBox denetimi kullanabiliriz.
Android uygulamalarında CheckBox kontrolünün kullanılmasının resimli gösterimi aşağıdadır.
Varsayılan olarak, android CheckBox Onaysız(Unchecked) durumunda olacaktır. Android:checked niteliğini kullanarak CheckBox‘ın varsayılan durumunu değiştirebiliriz.
CheckBox‘ın durumunu Onaylı (Checked) olarak değiştirmek istiyorsak, XML layout dosyamızda android:checked = “true” olarak ayarlamamız gerekir.
Android CheckBox Kontrolü Oluşturma
Android’de CheckBox kontrolünü, XML layout dosyasında veya programlı olarak Activity dosyasında iki şekilde oluşturabiliriz.
XML Layout Dosyasında CheckBox Oluşturma
Android uygulamasında XML layout dosyasında CheckBox kontrolünü tanımlamanın örnek yolu aşağıdadır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id = "@+id/mainLayout" 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" android:orientation="vertical" tools:context=".MainActivity"> <CheckBox android:id="@+id/chk1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="Java" /> </LinearLayout> |

Yukarıdaki kod parçacığını gözlemlerseniz, burada CheckBox kontrolünü tanımladık ve XML layout dosyasında android:checked özniteliğini kullanarak CheckBox durumunu Onaylı olarak ayarlamak.
Activity Dosyasında CheckBox Kontrolü Oluşturma
Android’de, gereksinimlerimize göre activity dosyasında programlı olarak CheckBox denetimi oluşturabiliriz.
Aşağıda, bir activity dosyasında dinamik olarak bir CheckBox denetimi oluşturma örneği verilmiştir.
1 2 3 4 5 6 7 | LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); CheckBox cb = new CheckBox(this); cb.setText("Yazılım Kodlama"); cb.setChecked(true); layout.addView(cb); |

Bu, CheckBox’ı gereksinimlerimize göre XML layout dosyasında veya programlı olarak activity dosyasında nasıl tanımlayabiliriz sorusunun cevabı olarak verildi.
Android CheckBox Tıklama Olayı
Genel olarak, kullanıcı CheckBox nesnesini Seçmek veya Seçimi Kaldırmak için CheckBox’a tıkladığında bir tıklama olayı alır.
Android’de CheckBox click olayını XML layout dosyasında veya programlı olarak Activity dosyasında iki şekilde tanımlayabiliriz.
XML Layout Dosyasında CheckBox Tıklama Olayı
XML layout dosyamızdaki checkbox öğesine android:onClick niteliğini ekleyerek buton için bir click olay işleyicisi tanımlayabiliriz.
android:onClick özniteliğinin değeri, bir click olayına yanıt olarak çağırmamız gereken metodun adı olmalı ve XML düzenini barındıran Activity dosyası ilgili metodu içermelidir.
XML layout dosyasında android:onClick özniteliğini kullanarak bir CheckBox tıklama olayı tanımlama örneği aşağıdadır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id = "@+id/mainLayout" 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" android:orientation="vertical" tools:context=".MainActivity"> <CheckBox android:id="@+id/chk1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="Java" android:onClick="onCheckBoxClick"/> </LinearLayout> |
XML layout dosyamızı barındıran Activity‘de, aşağıda gösterildiği gibi click olayı yöntemini uygulamamız gerekiyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public void onCheckBoxClick(View view) { //ilgili view nesnesi checked mı? boolean checked = ((CheckBox) view).isChecked(); // ID değerleri ile checkboxları okuma switch(view.getId()) { case R.id.chk1: if (checked){ //chk1 seçildi Toast.makeText(getApplicationContext(),"CHK1 SEÇİLDİ",Toast.LENGTH_LONG).show(); }else{ //chk1 seçimi kaldırıldı Toast.makeText(getApplicationContext(),"CHK1 SEÇİM KALDIRILDI",Toast.LENGTH_LONG).show(); } } } |

Activity Dosyasında CheckBox Tıklama Olayı Tanımlama
Android’de CheckBox click olayını XML düzen dosyası yerine Activity dosyasında programlı olarak tanımlayabiliriz.
Checkbox click olayını programlı olarak tanımlamak için, View.OnClickListener nesnesini oluşturun ve aşağıdaki gibi setOnClickListener(View.OnClickListener) öğesini çağırarak butona atayın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | CheckBox chk = (CheckBox) findViewById(R.id.chk1); chk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean checked = ((CheckBox) v).isChecked(); if (checked){ // seçili ise yapılacaklar Toast.makeText(getApplicationContext(),"CHK1 SEÇİLDİ",Toast.LENGTH_LONG).show(); } else{ // seçim kaldırılınca yapılacaklar Toast.makeText(getApplicationContext(),"CHK1 SEÇİM KALDIRILDI",Toast.LENGTH_LONG).show(); } } }); |

Android uygulamalarında CheckBox tıklama olaylarını gereksinimlerimize göre bu şekilde işleyebiliriz.
Android CheckBox Kontrolü Özellikleri
Aşağıdakiler, android uygulamalarında CheckBox denetimiyle ilgili yaygın olarak kullanılan özniteliklerden bazılarıdır
Özellik | Tanımı |
---|---|
android:id | Kontrolü benzersiz bir şekilde tanımlamak için kullanılır. |
android:checked | Onay kutusunun mevcut durumunu belirtmek için kullanılır. |
android:gravity | Metnin sol, sağ, orta, üst vb. nasıl hizalanacağını belirtmek için kullanılır. |
android:text | Bir onay kutusu için metni ayarlamak için kullanılır. |
android:textColor | Metnin rengini değiştirmek için kullanılır. |
android:textSize | Metnin boyutunu belirtmek için kullanılır. |
android:textStyle | Metnin stilini (bold, italic, bolditalic) değiştirmek için kullanılır. |
android:background | Onay kutusu kontrolü için arka plan rengini ayarlamak için kullanılır. |
android:padding | Dolguyu sol, sağ, üst ve alttan ayarlamak için kullanılır. |
android:onClick | Onay kutusu tıklandığında çağrılacak yöntemin adıdır. |
android:visibility | Kontrolün görünürlüğünü kontrol etmek için kullanılır. |
Android CheckBox Kontrolü Örneği
Android uygulamasında Button’a tıkladığımızda CheckBox kontrollerinin seçilen değerlerini almak için LinearLayout’ta birden fazla CheckBox kontrolü ve bir Button kontrolü tanımladık. İşlem adımları ve kodları aşağıda paylaştım.
Android stüdyosunu kullanarak yeni bir android uygulaması oluşturun ve CheckBoxOrnek olarak adlar verin.
Android stüdyosunda bir uygulama oluşturma konusunda bilgi sahibi değilseniz, Android Hello World Uygulama Oluşturma makalesine bakın.
Şimdi \res\layout
yolundan bir activity_main.xml
dosyası açın ve aşağıdaki gibi kodu yazın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id = "@+id/mainLayout" 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" android:orientation="vertical" tools:context=".MainActivity"> <CheckBox android:id="@+id/chk1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginTop="150dp" android:layout_marginLeft="100dp" android:text="Java" android:onClick="onCheckboxClick"/> <CheckBox android:id="@+id/chk2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginLeft="100dp" android:text="Python" android:onClick="onCheckboxClick"/> <CheckBox android:id="@+id/chk3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginLeft="100dp" android:text="Android" android:onClick="onCheckboxClick"/> <CheckBox android:id="@+id/chk4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginLeft="100dp" android:text="AngularJS" android:onClick="onCheckboxClick"/> <Button android:id="@+id/getBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="100dp" android:text="Detaylar" /> </LinearLayout> |
Yukarıdaki kodu gözlemlerseniz, XML Layout dosyasında birden fazla CheckBox kontrolü ve bir Button kontrolü oluşturduk.
Gerekli kontrollerle layout oluşturmayı bitirdiğimizde, onCreate() callback metodundan XML layout kaynağını yüklememiz gerekiyor, bu açık ana etkinlik dosyası MainActivity.java için \java\com.tutlane.checkboxornek yolundan ve kodu aşağıdaki gibi yazın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | package com.tasarimkodlama.checkboxornek; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.Toast; public class MainActivity extends AppCompatActivity { CheckBox android,angular,java,python; Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); java = (CheckBox)findViewById(R.id.chk1); python = (CheckBox)findViewById(R.id.chk2); android = (CheckBox)findViewById(R.id.chk3); angular = (CheckBox)findViewById(R.id.chk4); btn = (Button)findViewById(R.id.getBtn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String sonuc = "Seçilen Kurs"; if(android.isChecked()){ sonuc += "\nAndroid"; } if(angular.isChecked()){ sonuc += "\nAngularJS"; } if(java.isChecked()){ sonuc += "\nJava"; } if(python.isChecked()){ sonuc += "\nPython"; } Toast.makeText(getApplicationContext(), sonuc, Toast.LENGTH_SHORT).show(); } }); } public void onCheckboxClick(View view) { boolean checked = ((CheckBox) view).isChecked(); String str=""; switch(view.getId()) { case R.id.chk1: str = checked?"Android Seçildi":"Android Seçim Kaldırıldı"; break; case R.id.chk2: str = checked?"AngularJS Seçildi":"AngularJS Seçim Kaldırıldı"; break; case R.id.chk3: str = checked?"Java Seçildi":"Java Seçim Kaldırıldı"; break; case R.id.chk4: str = checked?"Python Seçildi":"Python Seçim Kaldırıldı"; break; } Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); } } |
Yukarıdaki kodu gözlemlerseniz, activity dosyamızda R.layout.dosya_adi şeklinde setContentView yöntemini kullanarak layoutumuzu çağırıyoruz. Burada xml dosya adımız activite_main.xml, bu yüzden activity_main dosya adını kullandık ve CheckBox kontrollerinin durumunu Onaylı/Onaysız ve Button tıklama ile seçilen CheckBox kontrol değerlerini alıyoruz.
Genellikle, activity başlatılması sırasında, bir activity için gerekli düzeni elde etmek için android framework tarafından onCreate() callback metodu çağrılır.