Android ListView Kullanımı (Kotlin)

Kotlin ile ArrayAdapter kullanarak ListView kullanımına değiniyoruz.
Uygulamamız içerisinde ArrayAdapter yapısını kullanarak belirli bir tipteki nesnelerin veya String ifadelerin listelenmesini nasıl sağlayabiliriz buna değiniyoruz.
Bir String listesi oluşturup elemanlarını dahil edelim;
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val meyveler = listOf("Elma", "Armut", "Muz", "Kivi", "Çilek", "Karpuz", "Kavun", "Ananas", "Kiraz", "Dut")
}
}
Standard layout görüntüsü olarak kullanılan android’in hazır layoutlarından olan simple_list_item_1 adlı layout formatını satır görüntümüzde kullanmak istediğimizi belirterek bir ArrayAdapter üretelim ve bu adapter’a listeyi bağlayalım.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val meyveler = listOf("Elma", "Armut", "Muz", "Kivi", "Çilek", "Karpuz", "Kavun", "Ananas", "Kiraz", "Dut")
val adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, meyveler)
}
}
activity_main.xml layout dosyamız içerisine list_view adlı bir ListView nesnesi ekleyelim;
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
Adapter’ı ListView nesnesine bağlayalım;
class MainActivity : AppCompatActivity() {
lateinit var list_view: ListView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val meyveler = listOf("Elma", "Armut", "Muz", "Kivi", "Çilek", "Karpuz", "Kavun", "Ananas", "Kiraz", "Dut")
val adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, meyveler)
list_view = findViewById(R.id.list_view)
list_view.adapter = adapter
}
}
Liste elemanlarına tıklanma olayını yakalayalım. MainActivity.kt sınıfımız üzerindeki son kodumuz;
class MainActivity : AppCompatActivity() {
lateinit var list_view: ListView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val meyveler = listOf("Elma", "Armut", "Muz", "Kivi", "Çilek", "Karpuz", "Kavun", "Ananas", "Kiraz", "Dut")
val adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, meyveler)
list_view = findViewById(R.id.list_view)
list_view.adapter = adapter
list_view.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
val secilenMeyve = parent.getItemAtPosition(position) as String
Toast.makeText(this@MainActivity, "Seçilen meyve: $secilenMeyve", Toast.LENGTH_SHORT).show()
}
}
}
Keyifli çalışmalar 🙂