Xamarin.Android – Listview kullanımı

8 Kas

Merhaba arkadaşlar,
Xamarin‘de elimizde ki bir datayı göstermek için kullanılan Listview‘dan bahsedeceğim.

Listview‘ı .Nette ki Grid’lere benzetebilirsiniz. .Net‘ te Gride bağlı datasource burada Adapter olarak adlandırılmış. .Net‘te Gridte bir veri göstermek için datasource’a bir veri verdiğimizde nasıl otomatik olarak listeliyorsa, burada da adapter verdiğimizde otomatik olarak listeliyor gibi düşünebilirsiniz.

Başlayalım

XamarinListviewTest adında Boş bir proje Android Projesi açtım.
Main.axml dosyasına 1 adet Listview ekledim;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <ListView
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/mainListview" />
</LinearLayout>

MainActivity.cs classını aşağıda ki gibi düzenledim.

using Android.App;
using Android.Widget;
using Android.OS;

namespace XamarinListviewTest
{
    [Activity(Label = "XamarinListviewTest", MainLauncher = true)]
    public class MainActivity : Activity
    {
        string[] data;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            //Datamız;
            data = new string[] { "Volkan",
                                  "Isla",
                                  "Skrtel",
                                  "Neto",
                                  "Hasan Ali",
                                  "Souza",
                                  "Ozan",
                                  "Giuliano",
                                  "Alper",
                                  "Valbuena",
                                  "Janssen"};


            //Yeni adaptör oluşturuluyor.
            //Android.Resource.Layout.SimpleListItem1 : Bu parametre listviewımızın tipini belirtiyor.
            ArrayAdapter arrayAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, data);

            //Main.axml dosyasında ki Listview objemizi çekiyoruz.
            ListView mainListView = FindViewById<ListView>(Resource.Id.mainListview);
            //Adaptör veriliyor.
            mainListView.Adapter = arrayAdapter;

            //Bir veriye tıklandığında yapılacka işlem.
            mainListView.ItemClick += MainListView_ItemClick;
        }

        private void MainListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
        {
            //Tıklanan satır yakalanır, ekrana basılır.
            Toast.MakeText(this, data[e.Position].ToString(), ToastLength.Long).Show();
        }
    }
}

İşlem sounucu;

Dikkat ettiyseniz, burada sadece 1 adet string[] dizimizi listeledik yani bu yapı ile sadece 1 adet veriyi listeyebiliyoruz.
Eğer birden fazla datayı listelemek istersek BaseAdapter classını extend edip, bazı methodlarını overrite etmeli kendi custom adapterimizi yazmalıyız.

Burada ki arkadaş nasıl yapılacağını anlatmış, inceleyebilirsiniz : Create Custom Listview – BaseAdapter Extends

Bu örnek ile ilgili yaralı olabilecek kaynaklar;

Listview – Xamarin
Creating A List View

İyi çalışmalar.

One Reply to “Xamarin.Android – Listview kullanımı”

  1. Pingback: Xamarin – SQLite işlemleri | Semih Çelikol

Bir Cevap Yazın