Liste Yapalım!

Yazar : zafer 12. Mayıs 2011 13:02

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)

Tags:

Android

Yorum ekle




  Country flag
biuquote
  • Yorum
  • Canlı önizleme
Loading


Zafer Günlükleri © 2008 - 2012 Zafer'in kişisel paylaşım sitesi.
BlogEngine.NET 2.0.0.36 | Tema : Mads Kristensen | Düzenleyen : Zafer Çelenk
Oturum Aç | APML ile filtrele

Anket

D dilini duydunuz mu?




Sonuçlar

Projeler

Galeri

Takvim

<<  Mayıs 2012  >>
PaSaÇaPeCuCuPa
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Yazıları takvimde göster

Satranç

I play chess at Chess.com!

Son Yorumlar

Comment RSS

Yasal Uyarı

Bu site görüşlerin paylaşıldığı kişisel bir blogdur. Site içeriğinden meydana gelebilecek sorunlardan site sahibi sorumlu değildir. Yorumlar site sahibi tarafından onaylandıktan sonra yayınlanacaktır.