Merhaba arkadaşlar bu yazımda sizlere android de kendimize özgü bir tane listwiew tanımlamaktan bahsetmek istiyorum. Öncelikle şunu belirteyim, listview nesnesi EditText, Button gibi sadece kendi üzerinde tek bir view taşıyan bir component değildir. Listview nesnesini aynı relative layout gibi üzerine nesne alarak özelleştirilebilen bir componenttir.

İlk başta MainActivity oluşturup içerisine bir tane listview atıyoruz. Böylece standart bir tane listview oluşturmuş oluyoruz.

Bu işlemi yaptıktan sonra ise listview’in içinde yer alan satırları özelleştireceğimiz layouta gelelim. Ben şu an için fazla zor olmayan bir tane örnek koyup yazıma devam ediyorum.

Şimdi ise bizim bu satırlara uygun bir içerik classı yazıp dataları doldurmak için işlemlere devam ediyoruz.

Yukarıda ben listview’in her bir satırında yer alan nesnelere karşılık gelen columnları yazmış olduk. Daha sonra da create metodunu çağırıyoruz ve bir tane liste tutarak o listeyi dolduruyoruz.

Böylece adapter nesnesinde kullanacağımız veriler hazır oldu. Kendimize ait bir tane özelleşmiş BaseAdepter sınıfını extends eden bir class yazacağız ve bu yazmış olduğumuz classda bazı metodları ezmek(üzerine yazmak override etmek) gerekmektedir. O metodlarda neler yapmanız gerektiği aşağıda mevcuttur.

• getCount(): int değer döner. ListView’da gösterilecek satır sayısını ifade eder. Verilerimizi barındıran ArrayList’in boyutu (size()) burada bize yarayacak.
• getItem(int position): Object değer döner. position ile belirtilen satıra denk düşen nesneyi döndürür. Bu nesne satır olarak gösterilecek nesnedir. Bundan dolayı Object yerine doğrudan model sınıfınızdan oluşturduğunuz nesneyi de dönüş türü olarak belirleyebilirsiniz.
• getItemId(int position): long değer döndürmelidir. Veri listesinde position ile sırası belirtilen satırın kimlik numarasını (id) döndürür. Liste içeriğini veri tabanına kaydedecekseniz ya da orada eşlemeler yapacaksanız önem kazanır.
• getView(int position, View convertView, ViewGroup parent): View değer döner. position ile sırası belirtilen satır için bir View döndürür. Bu metot içindeyken her satır için XML’i okuyup View haline getirme işlemi (inflating) yaparız. Bu hususta bize LayoutInflater servisi yardımcı olacaktır.

Son işlemde ise yukarıda tanımladığımız listview’e bu adepteri set ediyoruz ve işlem tamamlanmış oluyor