kodbankasi http://kodbankasi.org/kodbankasi

Android ListView ve Adapter Kullanımı

Merhabalar , bugün basit listview kullanımı ve adapter mantığını anlatacağım. Listview androidde verileri listelemeye yarayan ekran kontrollerinden bir tanesidir. Veriler sıralı ve verinin uzunluğuna göre aşağıya doğru kaydırılabilir şekilde listelenir. Adapterler ise veriler ile listview veya diger ekran kontrolleri arasında bağlantı kurar. Bu veriler veritabanından gelen veriler veya bir arrayde olabilir.

Bu örnekte listview mantığını basit bir şekilde anlatmaya çalıştığımdan verileri oluşturduğum array’den çekeceğim.Projeyi oluşturduktan sonra values klasörü içerisinde string.xml dosyasının içine aşağıdaki gibi bir string array oluşturdum.

<string-array name="sehirler">
<item>İstanbul</item>
<item>İzmir</item>
<item>Ankara</item>
<item>Edirne</item>
<item>Tekirdag</item>
<item>Bursa</item>
<item>Trabzon</item>
</string-array>

Daha sonra listview’i kullanacağım activity_main.xml’e listview’i ekledim.

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</RelativeLayout>

Ve kodlamaya başladım.onCreate’in içine yazdığım kodlar;

ListView liste = (ListView) findViewById(R.id.listview);
sehir= getResources().getStringArray(R.array.sehirler);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sehir);
liste.setAdapter(adapter);

İlk satırda listview’in id bağlantısını yapıyoruz. İkinci satır xml dosyasında oluşturduğumuz array’iclass içerisindeki array’e atadık.Üçüncü satırda ise arrayadapter nesnesi oluşturduk. Array adapter’in parametreleri sırasıyla context,listenin layout’u ve listeyi dolduran array adını ekledik.Dördüncü satır iste adapterde tuttuğumuz verileri listeye setAdapter metoduyla set ettiğimiz kısım.Kodlar bu şekilde listeleme işlemini gerçekleştiriyor. Listelenen verilerin tıklanma özelliği eklemek için setOnItemClickListener metodunu kullanabilirsiniz. Yaptığım örneğe tıklanma olayıda ekledim ve kodların tamamı aşağıdaki gibidir.

public class MainActivity extends Activity {
String sehir[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView liste = (ListView) findViewById(R.id.listview);
sehir= getResources().getStringArray(R.array.sehirler);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sehir);
liste.setAdapter(adapter);
liste.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(getApplicationContext(), sehir[arg2], Toast.LENGTH_SHORT).show();
}
});
}
}

simplelistview

Bir önceki yazımız olan Javada ++ ve -- operatörleri başlıklı yazımızı da inceleyebilirsiniz.

7 Yorumlar

  1. Listview e verileri çekebiliyorum ancak tıkladığımda mesaj çıkmıyor sebebi ne olabilir ?

  2. Güzel yazı. Teşekkürler işime yaradı.

  3. Merhabalar temiz bir anlatım olmuş fakat oradaki “View” in ne olduğunu anlayamadım aydınlatırsanız sevinirim. Teşekkürler

    • Yorumunuz için teşekkür ederim.

      Sanırım OnItemClick metodu içerisindeki View’i soruyorsunuz. O metod 4 parametre almaktadır. Bunlar parent, view, position ve id’dir. Burada View, Tıklandığı AdapterView içindeki görünümü temsil eder ancak bu adaptör tarafından sağlanan bir görünüm olması gerekir. Yani adaptör görünümü için kullanılır.

  4. hocam teşekkürler çok güzel anlatmışsınız, yalnız bir sorum olacak;

    listede ki her itemin yanına küçük bir resim ekleme şansımız var mı ?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.

Bu yazı da ilginizi çekebilir !

accelerometer

Android Sensör Kullanımı

Bir süre ara verdiğimiz android derslerimize kaldığımız yerden devam ediyoruz. Bir önceki makalemizde options menü ...