Android ListView ve Adapter
ListView kullanımı için öncelikle bir string array tanımlamalıyız ki buradaki verileri ekranda listeleyeceğiz. Android projemiz üzerinde, res/values klasörü altına alfabeArray(Farklı bir isim verebilirsiniz) adında bir xml klasörü oluşturuyoruz. Oluşturmuş olduğumuz xml sayfasına listelemek istediğimiz verileri yazacağız. Verileri her zaman bu şekilde yazıp listelemek zorunda değilsiniz, veritabanı yardımıylada listeleyebilirsiniz. Şimdiki anlatımda bu yöntemi kullanıyoruz.
Ben alfabemizdeki harfleri listeleyip üzerlerine tıklanınca, alfabedeki sıra numaralarını göstermek istiyorum.
alfabeArray.xml:
- A
- B
- C
- Ç
- D
- E
- F
- G
- Ğ
- H
- I
- İ
- J
- K
- L
- M
- N
- O
- Ö
- P
- R
- S
- Ş
- T
- U
- Ü
- V
- Y
- Z
Alfabemizi içeren listemiz hazır, sıra geldi alfabemizin bağlanacağı layout sayfasını hazırlamaya. Android projemizde res/layout klasörü altına alfabe_layout adında xml dosyası oluşturuyorum.
alfabe_layout.xml:
Şimdi sıra geldi listview'e adapter yardımıyla alfabeArray verilerini bağlamaya. Bu aşamadan sonra işlemlerimizi MainActivity.java(sizin kullandığınız activity farklı isimde olabilir) altında gerçekleştireceğiz.
MainActivity.java:
ListView lvAlfabe; Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AlfabeleriGetir(); // Bu fonksiyon yardımıyla alfabeleri ListView'e // bağlayacağız } void AlfabeleriGetir() { context = this; // ListView dinlerken kullanılacak lvAlfabe = (ListView) findViewById(R.id.listView1); //activity_main.xml'de yer alan listView1 id'li ListView'i alıyoruz String[] alfabe = this.getResources().getStringArray(R.array.strAlfabe); //values altındaki strAlfabe isimli string-array'i alıp, String dizisine atıyoruz ArrayAdapteralfabeAdapter = new ArrayAdapter (this, R.layout.list_layout, R.id.layout_list_text, alfabe); //ArrayAdapter ile alfabeAdapter nesnemizi oluşturuyoruz //Parametreler: 1-Context 2-resource (layout ister, bağlanacağı yer) //3-textViewResourceId (layout içeriğindeki textView) 4-String[] objects (strAlfabe ile aldığımız string dizini atıyoruz) lvAlfabe.setAdapter(alfabeAdapter); //Adapter verilerimizi lvAlfabe isimli ListView'e set ediyoruz //-------Buraya kadar olan kısımda Alfabeleri ListView'e bağlamış ve görüntülemiş olduk--------- SecilenAlfabeSirasi(); // Bu fonksiyon ile ListView üzerinden tıklanan harfi dinleyip, sıra numarasını elde edeceğiz. } void SecilenAlfabeSirasi(){ lvAlfabe.setOnItemClickListener(new ListClickHandler()); //Bu ifade ile lvAlfabeyi dinliyoruz. } //Tıklanma durumunda yapılacaklar private class ListClickHandler implements OnItemClickListener { @Override public void onItemClick(AdapterView Adapter, View view, int position, long arg3) { //Burada yer alan position tıklanan listin sira numarasını getirecek // TODO Auto-generated method stub TextView listText = (TextView) view .findViewById(R.id.layout_list_text); String text = listText.getText().toString(); int alfabeSirasi = position + 1; //position değeri daima 1 eksik gelecektir. Diziler 0 dan başladığı için, biz alfabeyi 1den başlayarak sayıyoruz bu yüzden 1 artırıyoruz Toast.makeText(context, text + " Alfabe Sırası: " + alfabeSirasi, Toast.LENGTH_SHORT).show(); //Toast ile tıklanan alfabe adı ve sırası gösterilecektir. } }
Bu işlemlerden sonra uygulamayı çalıştırabilirsiniz. Örnek ekran görüntüsünü makalenin başlangıcında görebilirsiniz.
10 yorum:
thanx
Sevgili Eren peki default.aspx?ID=14 olan bir içeriği nasıl hata sayfasına yönlendirebiliriz. domain.com/gunes_premix.html gibi
Merhaba Hakan bey, istediğiniz konuda içeriği yazıma ekledim. QueryString içeren sayfa yönlendirmesi alt başlığı altından inceleyebilirsiniz.
faydalı bir yazı olmuş, teşekkürler...
Eline sağlık, Kolayca toplu mail atmayı mümkün kılıyor gibi
burda ne yapmam lazım arkadaşlar
Çok iyi anlatmışsınız. Teşekkürler.
basit bişey beyler
Elinize saglık
mit üniversitesinin geliştirdiği bir uygulama var bu konuda ona göz atmakta fayda var http://bc.vc/piDNFW
Yorum Gönder