Bu makalede, Android Java’da RadioButton ve CheckBox kullanımıyla birlikte if yapısının temel kullanımını ele alacağız. Kullanıcıdan ad, cinsiyet ve ilgi alanları bilgilerini alıp sonuçları ekranda göstermeyi hedefleyen bir uygulama yapacağız.
1. XML Tasarımı
Öncelikle, kullanıcı arayüzünü tasarlıyoruz. Bu tasarım, bir EditText
, bir RadioGroup
içinde iki RadioButton
, üç CheckBox
ve bir Button
içerir.
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | <?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" android:padding="16dp"> <TextView android:id="@+id/tv_baslik" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Kullanıcı Formu" android:textSize="24sp" android:textStyle="bold" android:layout_gravity="center" android:layout_marginBottom="16dp" /> <EditText android:id="@+id/et_isim" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="İsminizi girin" android:inputType="textPersonName" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cinsiyet:" android:layout_marginTop="16dp" /> <RadioGroup android:id="@+id/rg_cinsiyet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/rb_erkek" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Erkek" /> <RadioButton android:id="@+id/rb_kadin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Kadın" /> </RadioGroup> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="İlgi Alanlarınız:" android:layout_marginTop="16dp" /> <CheckBox android:id="@+id/cb_spor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Spor" /> <CheckBox android:id="@+id/cb_muzik" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Müzik" /> <CheckBox android:id="@+id/cb_filmler" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Filmler" /> <Button android:id="@+id/btn_gonder" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Gönder" android:layout_marginTop="16dp" /> <TextView android:id="@+id/tv_sonuc" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:layout_marginTop="16dp" android:textSize="16sp" /> </LinearLayout> |

2. Java Kodları
Bu bölümde, RadioButton ve CheckBox seçimlerini işleyerek if yapısı ile sonuçları nasıl oluşturacağımızı göreceğiz.
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 72 73 74 75 76 77 78 79 80 81 | package com.example.kullanici_formu; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private EditText et_isim; private RadioGroup rg_cinsiyet; private CheckBox cb_spor, cb_muzik, cb_filmler; private Button btn_gonder; private TextView tv_sonuc; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // XML elemanlarını bağla et_isim = findViewById(R.id.et_isim); rg_cinsiyet = findViewById(R.id.rg_cinsiyet); cb_spor = findViewById(R.id.cb_spor); cb_muzik = findViewById(R.id.cb_muzik); cb_filmler = findViewById(R.id.cb_filmler); btn_gonder = findViewById(R.id.btn_gonder); tv_sonuc = findViewById(R.id.tv_sonuc); // Buton tıklama olayı btn_gonder.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Kullanıcı adını al String isim = et_isim.getText().toString().trim(); if (isim.isEmpty()) { tv_sonuc.setText("Lütfen isminizi girin!"); return; } // Cinsiyeti belirle int secilenCinsiyetId = rg_cinsiyet.getCheckedRadioButtonId(); String cinsiyet = ""; if (secilenCinsiyetId != -1) { RadioButton secilenCinsiyet = findViewById(secilenCinsiyetId); cinsiyet = secilenCinsiyet.getText().toString(); } else { cinsiyet = "Belirtilmedi"; } // İlgi alanlarını al StringBuilder ilgiAlanlari = new StringBuilder(); if (cb_spor.isChecked()) { ilgiAlanlari.append("Spor "); } if (cb_muzik.isChecked()) { ilgiAlanlari.append("Müzik "); } if (cb_filmler.isChecked()) { ilgiAlanlari.append("Filmler "); } if (ilgiAlanlari.length() == 0) { ilgiAlanlari.append("Belirtilmedi"); } // Sonuçları birleştir ve göster String sonuc = "Ad: " + isim + "\n" + "Cinsiyet: " + cinsiyet + "\n" + "İlgi Alanları: " + ilgiAlanlari.toString(); tv_sonuc.setText(sonuc); } }); } } |
Kod Açıklamaları
- EditText: Kullanıcı adını almak için kullanılır.
getText().toString().trim()
metodu ile metin alınır ve boşluklar kaldırılır.- Eğer kullanıcı adı boşsa, if yapısı ile uyarı gösterilir.
- RadioButton:
RadioGroup
ile bir grup oluşturulmuş ve yalnızca bir seçenek seçilebilir.getCheckedRadioButtonId()
ile seçilen butonun ID’si alınır ve ID ile metin değeri okunur.
- CheckBox:
- Kullanıcı birden fazla seçenek işaretleyebilir.
isChecked()
metodu ile kontrol yapılır ve işaretli olanlarStringBuilder
ile birleştirilir.
- If Yapısı:
- Kullanıcının adını boş bırakması ya da herhangi bir seçenek belirtmemesi durumunda if ile kontrol yapılır ve uygun mesajlar gösterilir.
Sonuç
Bu uygulama ile:
- RadioButton kullanarak tekli seçim,
- CheckBox ile çoklu seçim yapılabilir.
- If yapısı sayesinde, kullanıcı girdileri kontrol edilerek daha sağlam bir kullanıcı deneyimi sunulur.
