Yapacağım veritabanı uygulamasında ListView yapısını da kullanacağım için öncelikli olarak bunu açıklayıp, bir örnek üzerinde göstermek istedim.
ListView
· Adından da anlaşılacağı üzere ListView verileri listelemek için kullanılan bir yapıdır. ListView’ler sayesinde bir grup veriyi listeleyebilir ve kullanıcının seçtiği veriyle işlem yapabilirsiniz.
Örneğin; ListView’de listelediğiniz ürünlerinizin bilgilerinin üzerlerine tıklandığında görüntülenmesini sağlayabilirsiniz.
Uygulama
Bazı tatlı isimlerini listeleyelim ve bunlardan bir tanesini seçtiğimizde, bize neyi seçtiğimizi söyleyen bir Android uygulaması geliştirelim:
· Main.xml içerisine gelelim ve içindeki kodları şu şekilde düzenleyelim:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
LinearLayout zaten main.xml’i açtığınızda tanımlı geliyor. Biz sadece yeni bir ListView oluşturuyoruz. Buna ID ataması yapıyoruz ve boyutunu da tüm ekranı kaplayacak şekilde ayarlıyoruz.
· Java dökümanımızın içine geliyoruz. Bir ListView değişkeni yaratıyoruz, buna main.xml içerisindeki ListView’i atıyoruz. Tabi ki bunu yapmadan önce ListView için gereken import işlemini unutmuyoruz. Bu işlemleri yaptıktan sonra Java kodumuz şu hale geliyor: ( Eklediğim satırları belirtmek için arka planlarını renklendirdim!)
package com.listview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
public class ListViewActivity extends Activity {
/**Called when the activity is first created. */
ListView lw;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lw =(ListView)findViewById(R.id.listview);
}
}
· Bu işlemden sonra, ListView üzerinde olacak elemanlarımızı tutacağımız bir Array yaratıyoruz ve bunu da ListView üzerine uyguluyoruz. Kodumuz şu hale geliyor: ( Bu adımda eklenen kodların da arka plan renkleri mevcuttur!)
package com.listview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListViewActivity extends Activity {
/**Called when the activity is first created. */
ListView lw;
String lw_con [] ={"Şekerpare","Kadayıf","Kazandibi","Pişmaniye"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lw =(ListView)findViewById(R.id.listview);
ArrayAdapter AA = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,lw_con);
lw.setAdapter(AA);
lw.setTextFilterEnabled(true);
}
}
Buradaki kodlara bakarsak: Bir ListView’e içerik eklemek için ArrayAdapter sınıfından bir nesne kullanılır. Bunun için öncelikli olarak ArrayAdapter sınıfını import ettik. Daha sonra, bir ArrayAdapter nesnesi oluşturduk. Buradaki “android.R.layout.simple_list_item_1” android sisteminde tanımlı olarak bulunan ve liste için kullanılan bir görünümdür. Dana sonra bu ArrayAdapter nesnesimizi ListView’e bağlayarak, içeriğini oluşturmuş olduk.
· Şimdi ise bir elemanı seçtiğimizde, bize hangi elemanı seçtiğimizi söyleyecek bir dialog kutusu oluşturalım. Dialog konusu daha sonra detaylı ve örnekli bir şekilde anlatılacak, şimdi çok umursamasanız da olur. Bu işlemi de yaptıktan sonra kodun son hali şöyle oluyor: ( Yine, yeni eklenen kodların arka planı renklendirilmiştir.)
package com.listview;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListViewActivity extends Activity implements OnItemClickListener {
/**Called when the activity is first created. */
ListView lw;
String lw_con [] ={"Şekerpare","Kadayıf","Kazandibi","Pişmaniye"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lw =(ListView)findViewById(R.id.listview);
ArrayAdapter AA = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,lw_con); lw.setAdapter(AA);
lw.setTextFilterEnabled(true);
lw.setOnItemClickListener(this);
}
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
AlertDialog.Builder adb=new AlertDialog.Builder(ListViewActivity.this);
adb.setMessage("Seçilen öge = "+lw.getItemAtPosition(position));
adb.setPositiveButton("Ok", null);
adb.show();
}
}
Burada ListView üzerine bir Listener ekliyoruz. Listener içerisinde bir dialog kutusu yaratıyoruz. İçerisinde seçilen öğemizi söyleyen bir cümle bulunacak ve bir “Ok” butonu olacak. Tabi ki bunları gerçekleştirmek için de gerekli Importları yapmayı unutmuyoruz.
· Sonuç olarak uygulamamızı çalıştırdığımızda, mesela Kadayıfı seçtiğimizde şöyle bir sonuç alıyoruz:
teşekkurler, bu ornegi hazirlarken epey caniniz tatli cekmis olmali :)