Bu yazımda Android işletim sistemi üzerinde bir liste oluşturup bu listeye elemanlar eklemeyi ve bu elemanlarının tıklanması sonucu isimlerinin ekrana yazılmasını sağlayacak bir liste oluşturma aşamalarını anlatmaya çalışacağım.
Android geliştirme ortamını bilgisayarınıza kurduğunuzu düşünerek anlatıyorum. Öncelikle Eclipse programımızı açarak yeni bir proje oluşturuyoruz. Proje adı olarak ben ListeTest ismini kullandım siz istediğiniz bir ismi verebilirsiniz. Projeyi oluşturduktan sonra ana sınıfımız (ben adını “liste” olarak belirlemiştirm.) aşağıda gördüğünüz şekilde olmalıdır.
package com.testliste;
import android.app.Activity;
import android.os.Bundle;
public class liste extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Görüldüğü üzere liste sınıfı Activity sınıfından miras alınarak oluşturulmuş durumda, ancak biz bu örnekte bir liste oluşturacağımız için miras aldığımız Activity sınıfını ListActivity olarak değiştiriyoruz. Böylece liste sınıfımız ListActivity sınıfının özelliklerini miras yoluyla devralmış oluyor. Bu durumda yeni kodlarımız aşağıdaki gibi olmalıdır.
package com.testliste;
import android.app.ListActivity;
import android.os.Bundle;
public class liste extends ListActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Şimdi ise listemize doldurup ekranda göstereceğimiz öğeleri projemize ekleyelim. Ben bunun için bir dizi (array) kullanacağım “Sehirler” isimli dizi içerisnde bulunan şehir isimlerini listelemeyi amaçlıyorum. Bunun için aşağıdaki şekilde dizimi onCreate() metodu içinde oluşturuyorum.
String[] Sehirler = new String[] {"Ankara", "Samsun", "İstanbul", "Bursa", "Antalya", "İzmir"};
Listemizde göstereceğimiz şehirleride hazırladıktan sonra şimdi sıra bunları listeye eklemeye geliyor. Bu diziyi listeye eklemek için ArrayAdapter sınıfından faydalanacağız. Bunun için önce bir ArrayAdapter nesnesi tanımlayıp diziyi buna aktaracağız sonrasında ise ListActivity sınıfından miras aldığımız setListAdapter() metoduna ArrayAdapter nesnemizi gönderip dizi olarak hazırladığımız şehir isimlerinin listeye aktarılmasını sağlıyoruz. Anlatmaya çalıştığım bu işlemin kodları projeye eklediğimizde aşağıda görüldüğü gibi olacaktır.
package com.testliste;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class liste extends ListActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
String[] Sehirler = new String[] {"Ankara", "Samsun", "İstanbul", "Bursa", "Antalya", "İzmir"};
ArrayAdapter adaptor = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Sehirler);
this.setListAdapter(adaptor);
}
}
Buradaki “android.R.layout.simple_list_item_1” android sisteminde tanımlı olarak bulunan liste için kullanılan bir görünümdür. Bu kodlarıda ekledikten sonra projemizi emulator üzerinde çalıştırarak listemizi ekranda görebilirsiniz.

Buraya kadar geldiğimize göre bir adım daha atalım ve listemizde seçilen elemanın bilgisini alarak ekranda gösterelim böylece projemizi sadece bir listeleme değil interaktif bir proje haline getirelim. Bunun için listemizin onListItemClick() olayını yakalayıp bu olayı işlememiz gerekecek. liste sınıfımızı ListActivity sınıfından miras aldığımız için onListItemClick() metodunu bir listener kullanmadan hemen tanımlayabiliriz. OnListItemClick() metodunu şöyle hazırladık.
protected void onListItemClick(ListView listView, View view, int position, long id)
{
super.onListItemClick(listView, view, position, id);
Object obj = this.getListAdapter().getItem(position);
String kelime = obj.toString();
Toast.makeText(this, "Seã§iminiz : " + kelime, Toast.LENGTH_LONG).show();
}
Metodumuzu kısaca özetlersek, Object tipinde olan obj isimli değişkene adaptör içinde bulunan öğe pozisyonu dikkate alınarak bulunup ekleniyor. Bu öğenin bir kelime olduğunu bildiğimiz için toString() metodu yardımıyla String tipine çevirip kelime değişkenine aktarıyoruz. Ardından bu kelimeyi Toast nesnesi yardımıyla ekrana yazdırıyor ve işlemi bitiriyoruz. Son durumda projemizin son hali aşağıdaki gibi olacaktır.
package com.testliste;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class liste extends ListActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
String[] Sehirler = new String[] {"Ankara", "Samsun", "İstanbul", "Bursa", "Antalya", "İzmir"};
ArrayAdapter adaptor = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Sehirler);
this.setListAdapter(adaptor);
}
protected void onListItemClick(ListView listView, View view, int position, long id)
{
super.onListItemClick(listView, view, position, id);
Object obj = this.getListAdapter().getItem(position);
String kelime = obj.toString();
Toast.makeText(this, "Seçiminiz : " + kelime, Toast.LENGTH_LONG).show();
}
}
Neticede basit bir liste hazırladık ve listemizde bulunan öğelere tıklandığında bunları ekrana yazan küçük bir proje oluşturduk. Sizler bu küçük liste örneği üzerinden giderek çok daha değişik tasarımlar yapabilirsiniz veya veri kaynağını değiştirerek daha dinamik listeler hazırlayabilirsiniz. Bir sonraki yazıda görüşmek üzere, herkese sağlıklı ve başarılı günler dilerim.
Eclipse Proje Dosyası : ListeTest.rar (37,97 kb)