Android’de CheckBox, işaretli veya işaretsiz olabilen iki durumlu bir düğmedir ve kullanıcıların gereksinimlere göre iki durum (Seçili/ Seçili Değil) 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 (İşaretlenmemiş) durumunda olacaktır. Android:checked niteliğini kullanarak CheckBox’ın varsayılan durumunu değiştirebiliriz.
CheckBox’ın durumunu ON (Checked) olarak değiştirmek istiyorsak, XML layout dosyamızda android:checked = ‘true’ olarak ayarlamamız gerekir.
Android’de, CheckBox kontrolünü XML dosyasında veya program aracılığıyla Activity dosyasında iki şekilde oluşturabiliriz.
XML Dosyasında CheckBox Oluşturma
Android uygulamasında XML 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 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <CheckBox android:id="@+id/chk1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="Java" /> </RelativeLayout> |
Yukarıdaki kod parçacığını gözlemlerseniz, burada CheckBox kontrolünü tanımladık ve android:checked özniteliği true olarak ayarladık.
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 etkinlik 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.l_layout); CheckBox cb = new CheckBox(this); cb.setText("Tutlane"); cb.setChecked(true); layout.addView(cb); |
CheckBox’ı gereksinimlerimize göre XML mizanpaj dosyasında veya programlı olarak etkinlik dosyasında bu şekilde tanımlayabiliriz.
CheckBox Tıklama Olayı Oluşturma
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 tıklama etkinliğini XML düzen dosyasında veya program aracılığıyla Activity dosyasında iki şekilde tanımlayabiliriz.
XML Düzen Dosyasında CheckBox Tıklama Olayını Tanımlama
XML düzen dosyamızdaki CheckBox öğesine android:onClick özelliğini ekleyerek düğme için bir tıklama olayı işleyicisi tanımlayabiliriz.
android:onClick özelliğinin değeri, bir tıklama etkinliğine yanıt olarak çağırmamız gereken yöntemin adı olmalıdır ve XML düzenini barındıran Activity dosyasının ilgili yöntemi uygulaması gerekir.
XML düzen 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 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <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 düzen 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 | public void onCheckboxClicked(View view) { // Is the view now checked? boolean checked = ((CheckBox) view).isChecked(); // Check which checkbox was clicked switch(view.getId()) { case R.id.chk1: if (checked) // Çalıştırmak istenen kodlar else // Çalıştırmak istenen kodlar break; } } |
Activity Dosyasında CheckBox Tıklama Olayı Tanımlama
Android’de CheckBox click olayını XML 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 | CheckBox chk = (CheckBox) findViewById(R.id.chk1); chk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean checked = ((CheckBox) v).isChecked(); // Check which checkbox was clicked if (checked){ // Kodlar } else{ // Kodlar } } }); |
Android uygulamalarında CheckBox tıklama olaylarını gereksinimlerimize göre bu şekilde oluşturabiliriz.
Android CheckBox Kontrolünün Özellikleri
Aşağıdakiler, android uygulamalarında CheckBox denetimiyle ilgili yaygın olarak kullanılan özniteliklerden bazılarıdır.
| Özellik | Açıklama |
|---|---|
| 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. gibi nasıl hizalanacağını belirtmek için kullanılır. |
| android:text | Onay kutusu metnini 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 (kalın, italik, kalın yazı) 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 | Padding boşluğunu 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 Kullanımı Örneği
Android uygulamasında Button tıkladığımızda CheckBox kontrollerinin seçilen değerlerini almak için LinearLayout’ta 4 adet CheckBox denetimi ve bir Button denetimi tanımlama örneği aşağıdadır.
Android Studio kullanarak yeni bir android uygulaması oluşturun ve CheckBoxOrnek olarak isim verin. Android Studio’ da bir uygulama oluşturma konusunda bilgi sahibi değilseniz, Android Hello World Uygulama Oluşturma makalesine bakın.
Şimdi res\layout yolundan activity_main.xml dosyasını 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 xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <CheckBox android:id="@+id/chkJava" 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="onCheckboxClicked"/> <CheckBox android:id="@+id/chkPython" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginLeft="100dp" android:text="Python" android:onClick="onCheckboxClicked"/> <CheckBox android:id="@+id/chkAndroid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginLeft="100dp" android:text="Android" android:onClick="onCheckboxClicked"/> <CheckBox android:id="@+id/chkAngular" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginLeft="100dp" android:text="AngularJS" android:onClick="onCheckboxClicked"/> <Button android:id="@+id/getBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="100dp" android:text="Rapor" /> <TextView android:id="@+id/tvRapor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Rapor" android:layout_marginLeft="100dp" android:padding="10dp" /> </LinearLayout> |

MainActivity.java Kodları:
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 | package com.example.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.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { CheckBox android, java, angular, python; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); android = (CheckBox)findViewById(R.id.chkAndroid); angular = (CheckBox)findViewById(R.id.chkAngular); java = (CheckBox)findViewById(R.id.chkJava); python = (CheckBox)findViewById(R.id.chkPython); Button btn = (Button)findViewById(R.id.getBtn); TextView rapor=(TextView) findViewById(R.id.tvRapor); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String result = "Sçilen Kurslar:"; if(android.isChecked()){ result += "\nAndroid"; } if(angular.isChecked()){ result += "\nAngularJS"; } if(java.isChecked()){ result += "\nJava"; } if(python.isChecked()){ result += "\nPython"; } rapor.setText(result); } }); } public void onCheckboxClicked(View view) { boolean checked = ((CheckBox) view).isChecked(); String str=""; switch(view.getId()) { case R.id.chkAndroid: str = checked?"Android Seçildi":"Android Seçim Kaldırıldı"; break; case R.id.chkAngular: str = checked?"AngularJS Seçildi":"AngularJS Seçim Kaldırıldı"; break; case R.id.chkJava: str = checked?"Java Seçildi":"Java Seçim Kaldırıldı"; break; case R.id.chkPython: str = checked?"Python Seçildi":"Python Seçim Kaldırıldı"; break; } Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); } } |
Ekran Çıktısı:

