Android listview kullanımı

Mobil uygulamalarda kullanıcıya bazı verileri bir liste halinde göstermek için listview kullanırız. Listeleyeceğimiz elemanlar bir dizi veya veritabanı sorgu sonucu oluşturduğumuz bir liste olabilir. ListView kendi içinde satır satır textview nesneleri bulunduran bir elemandır. Eğer dilersek biz kendimiz bir satır tasarımı yapıp listviewi özelleştirebiliriz. Bu ayrı bir konu olup bununla ilgili ayrı bir yazı yazmayı düşünüyorum. Fakat şimdi en basit haliyle bir dizi tanımlayıp bu dizinin elemanlarını bir listviewde gösteren uygulamamızı yapalım ve detayları örnek üzerinde anlamaya çalışalım. 

Layout dosyası

Öncelikle listviewi oluşturacağımız main_activity.xml layout dosyamızı res/layout/ dizininde oluşturuyoruz. 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_activity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.ahmet.listview.MainActivity">

    <ListView
        android:id="@+id/main_activity_listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>

</RelativeLayout>

Burada önemli olan bilgi ListView in id özelliğidir (main_activity_listview).

boş listview in önizlemesi (main_activity.xml)

Liste için kullanılan diziyi tanımlama

Dizimizi tanımlamanın birkaç yolu var. Fakat ben renkler isimli diziyi res/layout/strings.xml dosyasında tanımlıyorum. Aşağıda java kod bölümünde bu diziye nasıl eriştiğimize değineceğim. 

<array name="renkler">
    <item>Sarı</item>
    <item>Kırmızı</item>
    <item>Yeşil</item>
    <item>Mavi</item>
    <item>Mor</item>
    <item>Beyaz</item>
    <item>Siyah</item>
    <item>Eflatun</item>
    <item>Turuncu</item>
</array>

Verileri gösterme

Bütün bu aşamalardan sonra artık renkler dizisi elemanlarını listview de gösterme işlemine geliyoruz. Bunun için öncelikle Activity sınıfından türettiğimiz MainActivity.java dosyamızı oluşturuyoruz. 

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // (1) xml layout dosyamızı java sınıfıyla bağlıyoruz.
        setContentView(R.layout.main_activity);

        // (2) strings.xml içindeki renkler dizisine erişiyoruz.
        final String[] renkler=getResources().getStringArray(R.array.renkler);

        // (3) ListView elemanına erişiyoruz.
        ListView renkList=(ListView)findViewById(R.id.main_activity_listview);

        // (4) Adapter tanımı
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, renkler);

        // (5) listemizi adaptera bağlıyoruz
        renkList.setAdapter(adapter);

        // (6) liste elemanlarına tıklanma olayını yakalama
        renkList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                Toast.makeText(getApplicationContext(), 
                               "Seçilen renk: " + renkler[position], 
                               Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Kodlarımızı onCreate() metoduna yazıyoruz. Böylelikle aktivitemiz oluşturulur oluşturulmaz listemiz doldurulacaktır. İlk önce 1. adımda görüldüğü şekilde setContentView() metoduyla main_activity.xml layout dosyamıza erişiyoruz. Daha sonra 2. adımda strings.xml dosyasında oluşturduğumuz renkler dizisine erişiyoruz. 3. adımda ise ListView türünde ve renkList isminde bir değişken oluşturarak xml dosyamızda oluşturduğumuz ListView nesnesine erişiyoruz. 4. adıma geldiğimizde asıl işi yaptığımız kısmı görüyoruz. Veriler Adapter ile listeye doldurulur. Gönderdiğimiz parametrelere bakacak olursak:

  • thisContext. Bu this deyimiyle değer olarak Activity'nin kendisinin dönmesini sağlıyoruz. ArrayAdapter, çalıştığı yerle ilgili bilgiyi Context'e ulaşarak bulur.
  • android.R.layout.simple_list_item_1: Resource. Listemizin bina edileceği şablondur. Androidin hazır bir layoutudur. 
  • renkler: Listeyi dolduracağımız dizidir. 

5. adımda artık listemizi oluşturduğumuz adapter nesnesine bağlıyoruz. 6. adımda ise oluşan listenin her bir elemanına tıklandığı zaman yakalanan olay yazılır. Biz uygulamada her tıklamada seçilen rengi bir toast mesajıyla ekranda gösteriyoruz. 

verilerin yüklenmiş hali.

         

Toast mesajının gösterimi

ETİKETLER
androidlistviewlistview kullanımıadapterlistview usageandroid listview kullanımı
Öncekİ Yazı

jQuery de tanımlı olmayan bir değişkeni kontrol etmek

Sonrakİ Yazı

Android listviewlerin özelleştirilmesi (custom listview)

İlgili Yazılar