Bu makalede, Android Studio kullanarak basit bir pizza sipariş uygulaması geliştireceğiz. Bu uygulama, RadioButton ve Checkbox denetimlerini kullanarak pizza boyutunu ve ekstra malzemeleri seçmesine olanak tanıyacak. Seçimler yapıldıktan sonra, kullanıcıya sipariş özeti ve toplam tutar gösterilecektir.
Adım 1: Projeyi Başlatma ve Layout Tasarımı
İlk olarak, Android Studio’da yeni bir proje oluşturun ve ana etkinlik (MainActivity
) için uygun bir XML layout tasarımı yapalım. Aşağıdaki layout dosyasını kullanarak uygulamanın görünümünü oluşturacağız.
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 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_marginHorizontal="15dp" tools:context=".MainActivity"> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="117dp" app:srcCompat="@drawable/logo" android:layout_marginTop="10dp" tools:srcCompat="@drawable/logo" /> <EditText android:id="@+id/et_ad" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:hint="Adınızı girin" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Pizza Boyutunu Seçin" android:layout_marginTop="15dp" android:textStyle="bold" /> <RadioGroup android:id="@+id/sizeGroup" android:layout_width="match_parent" android:layout_height="wrap_content"> <RadioButton android:id="@+id/rb_kucuk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="Küçük (120₺)" /> <RadioButton android:id="@+id/rb_orta" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Orta (150₺)" /> <RadioButton android:id="@+id/rb_buyuk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Büyük (180₺)" /> </RadioGroup> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Ek Malzemeler Ekleyin" android:textStyle="bold" /> <CheckBox android:id="@+id/chk_mantar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Mantar (+20₺)" /> <CheckBox android:id="@+id/chk_zeytin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Zeytin (+20₺)" /> <CheckBox android:id="@+id/chk_sucuk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sucuk (+20₺)" /> <Button android:id="@+id/btn_siparis" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Sipariş Ver" /> <TextView android:id="@+id/tv_ozet" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:paddingTop="16dp" /> </LinearLayout> |
Yukarıdaki xml kodları sonucu tasarımımız aşağıdaki gibi görünecektir.
Kullanmak istediğiniz resmi res klasörü altında bulunan drawable klasörüne kopylamanız gerekmektedir. Bu örnekte logo.png olarak resim kopyalanmıştır.

Bu XML tasarımında, kullanıcıdan adı, pizza boyutunu ve ek malzemeleri alabileceğiz. Kullanıcı, sipariş verdikten sonra siparişin özeti ve toplam tutar aşağıdaki TextView
‘de görünecek.
Adım 2: MainActivity
Java Kodunu Yazma
MainActivity.java
dosyasını açın ve gerekli bileşenleri bağlayarak, kullanıcının seçimlerine göre siparişin özetini hesaplayıp görüntüleyelim.
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 92 | package com.example.pizzaornek; import android.os.Bundle; import android.text.Html; 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 etAd; private RadioButton rbKucuk, rbOrta, rbBuyuk; private CheckBox chkMantar, chkZeytin, chkSucuk; private Button btnSiparis; private TextView tvOzet; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Bileşenleri bağlama etAd = findViewById(R.id.et_ad); rbKucuk = findViewById(R.id.rb_kucuk); rbOrta = findViewById(R.id.rb_orta); rbBuyuk = findViewById(R.id.rb_buyuk); chkMantar = findViewById(R.id.chk_mantar); chkZeytin = findViewById(R.id.chk_zeytin); chkSucuk = findViewById(R.id.chk_sucuk); btnSiparis = findViewById(R.id.btn_siparis); tvOzet = findViewById(R.id.tv_ozet); // Sipariş butonuna tıklanıldığında işlem yapılacak btnSiparis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Kullanıcı adı String name = etAd.getText().toString(); // Pizza boyutu seçimi ve fiyat int fiyat = 0; String pizzaBoyut = ""; if (rbKucuk.isChecked()) { fiyat = 120; pizzaBoyut = "Küçük"; } else if (rbOrta.isChecked()) { fiyat = 150; pizzaBoyut = "Orta"; } else if (rbBuyuk.isChecked()) { fiyat = 180; pizzaBoyut = "Büyük"; } // Ek malzemeler ve ekstra ücret int ekstraUcret = 0; StringBuilder malzemeler = new StringBuilder(); if (chkMantar.isChecked()) { ekstraUcret += 20; malzemeler.append("Mantar "); } if (chkZeytin.isChecked()) { ekstraUcret += 20; malzemeler.append("Zeytin "); } if (chkSucuk.isChecked()) { ekstraUcret += 20; malzemeler.append("Sucuk "); } // Toplam fiyat int odenecekTutar = fiyat + ekstraUcret; // Sipariş özeti String hesapOzeti = "<b>Ad:</b> " + name + "<br><br>" + "<b>Pizza Boyutu:</b> " + pizzaBoyut + "<br><br>" + "<b>Ek Malzemeler:</b> " + (malzemeler.length() > 0 ? malzemeler : "Yok") + "<br><br>" + "<b><u>Toplam Tutar:</u></b> " + odenecekTutar + "₺"; // Özeti TextView'de göster tvOzet.setText(Html.fromHtml(hesapOzeti, Html.FROM_HTML_MODE_COMPACT)); } }); } } |
Adım 3: Uygulama İşleyişi
- Kullanıcı Adı: Kullanıcı adı,
EditText
üzerinden alınır. - Pizza Boyutu: Kullanıcı, üç seçenekten birini (Küçük, Orta, Büyük) seçer. Her seçeneğin farklı bir fiyatı vardır.
- Ekstra Malzemeler: Kullanıcı,
CheckBox
‘lar aracılığıyla ek malzemeler (Mantar, Zeytin, Sucuk) ekleyebilir. Her malzeme 20₺ ek ücret getirir. - Sipariş Özeti: Kullanıcı siparişini tamamladığında, toplam tutar ve seçimler, HTML formatında ekranda gösterilir.
Adım 4: Uygulamanın Çalıştırılması
Bu uygulama Android cihazınızda çalıştığında, kullanıcı adı, pizza boyutu ve ek malzemeler seçildikten sonra, sipariş özeti ve toplam ücret ekranda görünecektir.

Bu Android uygulamasında, kullanıcıların pizza siparişi verebileceği basit bir arayüz oluşturuyoruz. Uygulamanın temel işlevi, kullanıcının adı, pizza boyutu ve ekstra malzemeleri seçmesine olanak tanımaktır. Tüm bu seçimler yapıldıktan sonra, kullanıcının seçtiği öğelere göre siparişin özeti ekranda görüntülenir ve toplam ücret hesaplanarak kullanıcıya gösterilir.
Uygulama, ilk olarak MainActivity.java
dosyasındaki bileşenleri bağlamakla başlar. Kullanıcıdan alınacak veriler için EditText
, pizza boyutunu seçmek için RadioGroup
ve ekstra malzemeleri seçmek için CheckBox
bileşenleri kullanılır. Bu bileşenleri XML dosyasındaki uygun alanlara yerleştirdik. EditText
bileşeni, kullanıcının adını girmesi için kullanılır. RadioGroup
içinde bulunan üç adet RadioButton
kullanıcının pizza boyutunu seçmesini sağlar. Kullanıcı küçük, orta veya büyük boyutlardan birini seçebilir. Her bir boyutun fiyatı farklıdır ve bu fiyatlar kullanıcı seçimine göre belirlenir.
Ekstra malzemeler ise, kullanıcıya CheckBox
‘lar ile sunulur. Kullanıcı, mantar, zeytin ve sucuk gibi malzemeleri seçebilir. Bu malzemeler, her biri için ek bir ücretle birlikte pizza siparişine eklenir. Her CheckBox
için belirli bir ücret eklenir, örneğin mantar, zeytin ve sucuk için 20₺ ek ücret talep edilir.
Tüm veriler toplandıktan sonra, bir Button
bileşeni olan “Sipariş Ver” butonuna tıklanır. Bu butona tıklandığında, kullanıcı tarafından girilen bilgiler alınır ve pizza boyutu, ek malzemeler ve toplam ücret hesaplanır. Bu bilgiler bir StringBuilder
kullanılarak birleştirilir ve HTML biçiminde formatlanır. Kullanıcıya sipariş özeti TextView
üzerinde gösterilir. Burada Html.fromHtml
yöntemi kullanılarak, metin HTML formatında işlenir ve kullanıcıya daha okunabilir bir şekilde sunulur.
Özetle, kullanıcı adı, pizza boyutu ve ekstra malzemelerin seçilmesinin ardından, toplam ücret hesaplanır ve tüm bilgiler HTML biçiminde kullanıcıya sunulur. Bu süreç, kullanıcı etkileşimiyle oldukça dinamik hale gelir ve kullanıcı dostu bir arayüz sunar. Bu uygulama, Android geliştirme için temel bileşenlerin nasıl entegre edileceğini ve verilerin nasıl dinamik bir şekilde işleneceğini anlamak için oluşturulmuştur.