Android uygulamalarında listeleme, en sık kullanılan işlemlerden biridir.
Öğrenci listeleri, ders programları, ürünler veya ayarlar genellikle ListView veya RecyclerView ile gösterilir.
Bu listelerde kullanıcı bir elemana tıkladığında:
- Hangi elemanın seçildiğini öğrenmek
- Seçilen elemanı ekranda göstermek
- Yeni bir sayfaya detay olarak göndermek
gibi işlemler yapılır.
Bu makalede Android Java kullanarak ListView’de tıklanan liste elemanını göstermeyi adım adım inceleyeceğiz.
Kullanıcı:
- Ders isimlerinden oluşan bir listeyi görecek
- Listeden bir ders seçtiğinde
- Seçilen dersin adı ekranda Toast mesajı olarak gösterilecek
XML Tasarımı (activity_main.xml)
Öncelikle arayüz tasarlayalım. Bu örnekte yalnızca bir ListView yeterli olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.constraintlayout.widget.ConstraintLayout> |
Java Kodları (MainActivity.java)
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 | package com.example.liste_elemani_alma; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); ListView listView; ArrayList<String> dersler; ArrayAdapter<String> adapter; listView = findViewById(R.id.listView); dersler = new ArrayList<>(); dersler.add("Matematik"); dersler.add("Fizik"); dersler.add("Kimya"); dersler.add("Biyoloji"); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dersler); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String secilen = dersler.get(position); Toast.makeText(MainActivity.this, "Seçilen Ders: " + secilen, Toast.LENGTH_SHORT).show(); } }); } } |
Kodları adım adım açıklayalım.
1️⃣ Paket Tanımı
1 2 3 | package com.example.liste_elemani_alma; |
Uygulamanın benzersiz paket adıdır
Android’de her proje bu paket altında çalışır
2️⃣ Import (Kütüphaneler)
1 2 3 4 5 6 7 8 | import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; |
ListView→ Liste oluştururArrayAdapter→ Liste ile veriyi bağlarAdapterView→ Liste tıklama olaylarını yakalarToast→ Kısa bilgilendirme mesajı gösterir
1 2 3 4 5 6 7 | import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; |
Yeni Android sürümlerinde ekran taşmalarını önlemek için kullanılır. Zorunlu değildir.
1 2 3 | import java.util.ArrayList; |
Liste verilerini tutmak için kullanılır.
3️⃣ Activity Tanımı
1 2 3 | public class MainActivity extends AppCompatActivity { |
MainActivity uygulamanın ana ekranıdır
AppCompatActivity → Android uyumluluğu sağlar.
4️⃣ onCreate Metodu
1 2 3 | protected void onCreate(Bundle savedInstanceState) { |
📌 Ne zaman çalışır?
- Uygulama ilk açıldığında çalışır.
- Tüm tanımlamalar burada yapılır.
5️⃣ Edge-to-Edge Ayarları
1 2 3 4 | EdgeToEdge.enable(this); setContentView(R.layout.activity_main); |
XML tasarımı Java’ya bağlar.
activity_main.xml ekrana yüklenir.
1 2 3 4 5 6 7 8 | ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); |
📌 Amaç:
- Status bar / navigasyon çubuğu çakışmasını önler.
- XML’de
id=mainolması gerekir. - Ders anlatımında isteğe bağlıdır.
6️⃣ Değişken Tanımlamaları
1 2 3 4 5 | ListView listView; ArrayList<String> dersler; ArrayAdapter<String> adapter; |
| Değişken | Görevi |
|---|---|
ListView | Listeyi ekranda gösterir |
ArrayList | Ders isimlerini tutar |
ArrayAdapter | Listeyi ListView’e bağlar |
7️⃣ ListView Bileşenini Bulma
1 2 3 | listView = findViewById(R.id.listView); |
XML’deki ListView, Java tarafında kullanılabilir hâle gelir.
8️⃣ Liste Verilerinin Oluşturulması
1 2 3 4 5 6 7 | dersler = new ArrayList<>(); dersler.add("Matematik"); dersler.add("Fizik"); dersler.add("Kimya"); dersler.add("Biyoloji"); |
📌 Liste içine ders isimleri eklenir
9️⃣ Adapter Oluşturma
1 2 3 4 | adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dersler); |
this → Bulunulan Activity
simple_list_item_1 → Android’in hazır liste tasarımı
dersler → Gösterilecek veriler
🔟 Adapter’ı ListView’e Bağlama
1 2 3 | listView.setAdapter(adapter); |
📌 Bu satır olmazsa liste ekranda görünmez.
1️⃣1️⃣ Tıklama Olayı (OnItemClickListener)
1 2 3 | listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { |
Listede hangi elemana tıklandığını yakalar.
🔹 onItemClick Metodu
1 2 3 | public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |
| Parametre | Anlamı |
|---|---|
position | Tıklanan elemanın sırası |
id | Elemanın ID değeri |
view | Tıklanan görünüm |
1 2 3 | String secilen = dersler.get(position); |
📌 Tıklanan ders alınır.
1 2 3 4 5 | Toast.makeText(MainActivity.this, "Seçilen Ders: " + secilen, Toast.LENGTH_SHORT).show(); |
📌 Seçilen ders ekranda mesaj olarak gösterilir.
