Anasayfa » Android, Java ve Java Teknolojileri

Android Programlama – Veritabanı, SQLiteOpenHelper, Cursor

22 Temmuz 2012 11.863 kez okundu 6 yorum
1 Star2 Stars3 Stars4 Stars5 Stars (2 oy,5 üzerinden : 3,00 )
Loading...

Merhaba arkadaşlar,bugünkü çalışmamızda, hazırlamış olduğumuz uygulamamızı formverilerini database de tutmak için geliştireceğiz.  Bir önceki yazımızı okumayanlar buradan okuyabilir.  Okumak istemeyenler bir önceki uygulamayı indirip üzerinde devam edebilirler.

Diğer yazılarımız;

Database kullanımına geçtiğimizde, daha önce kullandığımız arrayAdapter yerine artık cursorAdapter kullanacağız.

İlk olarak database bağlantı ve işlemlerini gerçekleştireceğimiz sınıfı yazmalıyız. Bunun için src klasörü altında diğer sınıflarımızın yanında BookHelper.java adında bir dosya açalım. Açtığımız bu sınıfımız  SQLiteOpenHelper classını extend edecek ve şu şekilde tanımlayalım.

Bu şekilde hazırlanan database classı ile compile edilebilir olması gerekir.  Database ismi “list.db” dir ve versiyonu 1 dir. Versiyon şimdilik bizi çok ilgilendirmiyor. Bundan sonraki adım olarak, tablolarımızı belirlemek ve yaratmak için onCreate() metodunu kullanmak.

onCreate() metodu ile tablomuz ilk kez yaratılırken çalıştırılacak sql komutunu yazıyorum. onUpgrade() ise birden fazla tablo versiyonu var ise kullanılacak ve şimdilik onunla işimiz yok.

Yazımızın ilerleyen kısımlarında yavaş yavaş kodumuzdaki fazlalıkları atacağız. Çünkü artık kod karışmaya başladı.

İlk olarak yeni classımızdan bir nesne tanımlayalım.

ardından onCreate() içinde yeni bir nesne yaratalım.

ve son olarak onDestroy() metodu ekleyerek database i kapatalım.

Şu aşama ise artık Book model dosyamız yerine database kullanacağız. ArrayAdapter yerine ise Cursor kullanacağız.

BookHelper classımıza aşağıdaki insert() fonksiyonunu ekliyoruz.

getWritableDatabase() ile database i çağırıyoruz.Eğer bağlantı açık değil ise otomatik olarak bağlantı açılıyor.

onSave metodunda değişiklik yapalım. Butona tıklandığında kayıt işlemi yapılsın.

Ekleme işlemi tamamdır, gelin şimdide bu  eklediğimiz kitapların listesini çekelim. Bunun için BookHelper dosyasına getAll() isminde Cursor dondüren bir metod yazalım.

Bu yazdığımız metod tüm bilgiyi çekiyor. Biz sadece özel bir kolonu almak istersek(örneğin kitap isimleri)  diye bir kaç metod daha ekleyelim.

Listeyi database den çekme işlemi de tamam olduğuna göre sıra gelir bunları işlemeye. Şimdi elimizde var olan bir BookAdapter imiz ArrayAdapterden extend ediyor. Ancak bir Cursor kullanacağımız için burada bir revizyona gidiyoruz.  Bu arada artık getView kullanamayacağız. Bunun yerine bindView ile newView kullanacağız.

onCreate metodu içine şu kodu ekliyoruz

BookHolder classımızı şu şekilde düzenleyelim

Update işlemi için onListClick metodunu da düzenleyelim

Son olarak insert metodumuzu çağırdıktan hemen sonra listemizin refresh olması için model.requery(); metodunu çağırıyorum. Bu haliyle artık yeni kitap eklediğimizde database ekleniyor ve kapatıp açtığımızda bu kitaplar listede kalmaya devam ediyor.

Projenin kaynak kodlarını buradan indirebilirsiniz. Rar şifresi: www.kodmerkezi.net

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

6 yorum »

  • ali dedi ki:

    Merhaba
    KOd çok güzel ve yararlı. Anack birşey sormak istiyorum. Dropdownlist için bir örnek kodunuz varmı? Ancak burada Örneğin il ve ilçeler için iki drop down olacak. İli seçince diğer dorpdon da ilgili ilçeler olacak . Bunu nasıl yapabiliriz.

  • admin dedi ki:

    Buradaki cevapları okuyabilirsiniz

  • Cihan dedi ki:

    Merhaba

    Öncelikle ellerinize sağlık çok iyi bir çalışma olmuş son günlerde buna benzer bir araştırma yapıyordum bu database sanırım cihazın içersinde oluşturuluyor bunu internetteki bir hosttan çekmek için geliştirebilirmiyiz. tüm denemelerimde başarısız oldum.

    Çalışmalarınızın devamını dilerim.

  • yiğit dedi ki:

    SQL Lite Admin ile bir veritabanı oluşturup bu vt nı projemize import etme ve procedur trigger yazma nasıl yapılabilir bu konulardada bişeyler paylaşabilirmisiniz…
    teşekkkürler…

  • can dedi ki:

    bu paylaştıgınız kaynak kodlarını nasıl acıcam bi türlü beceremedim bu işte baya acemiyim lütfen yardım edermisiniz

  • admin dedi ki:

    Rar şifresi: http://www.kodmerkezi.net

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.