Android Programlama – Veritabanı, SQLiteOpenHelper, Cursor
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;
- Eclipse Üzerine Android Sdk Kurulumu (Resimli ve Detaylı Windows – Linux – Mac İçin Anlatım)
- Android Programlama – Basit Form Uygulaması
- Android Programlama – TableLayout-Radio Button
- Android Programlama – ListView-Spinner-AutoCompleteTextView-Adapter
- Android Programlama – Özelleştirilmiş ListView
- Android Programlama – TabView, TabHost, TabWidget, FrameLayout – DatePicker
- Android Programlama – Menu, Toast, AlertDialog
- Android Programlama – Progress Bar, Thread
- Android Programlama – lifeCycle, onPause(), onResume()
- Android Programlama – Landscape, Portrait, String.xml
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.netBunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Maven Nedir? Pom Nedir? Nasıl Kullanılır? Örnek Uygulama
Sonraki: Windows Üzerine Opencv Kurulumu ve Visual Studio 2010 ile Entegrasyonu >>>
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.
Buradaki cevapları okuyabilirsiniz
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.
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…
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
Rar şifresi: http://www.kodmerkezi.net
Yorum Bırakın!
En Son Yazılanlar
Codeigniter Dersleri
Kategoriler
Teknoloji Haberleri
Android Dersleri
Arşiv
Sitemizin QR Kodu
Yeniliklerden İlk Sizin Haberiniz Olsun
KodMerkezi.Net Facebookta
En Çok Okunanlar
En Son Aranan Kelimeler
En Çok Oy Alanlar
Etiket Bulutu
İlginizi Çekecek Siteler
Arşiv
Yönetim
En Son Yapılan Yorumlar
En Çok Okunanlar