Android | Veritabanı işlemleri - 3

Written by Super User. Posted in Android Anlatımlar

SQL sorgularını inceledik, sabitler arayüzümüzü tanımladık, veritabanı sınıfımızı tanımladık. Artık main programa geçme vakti geldi.

Fakat öncelikle main programımız için biraz hazırlık yapmamız gerekiyor. Öncelikle veritabanı kayıtlarımızı gösterebileceğimiz bir TextView'ı main.xml layout dosyamızda oluşturalım. Bu işlemi yaptıktan sonraki main xml dosyamız alttaki şekilde olacaktır.

main.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/text"
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
/>
</ScrollView>

Ekranımızda kayıtların eksiksiz gösterilebilmesi için root layout elemanımızı ScroolView olarak belirledik. Sonrasında da kodumuzda R.id.text yazarak erişebileceğimiz bir TextView oluşturduk.

Veritabanideneme.java

package com.getitandroid.veritabanideneme;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.TextView;
import static com.getitandroid.veritabanideneme.Sabitler.*;

public class VeritabaniDeneme extends Activity {
private Veritabani kayitlar;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
kayitlar = new Veritabani(this);
try{
addKayit("Getit","Android");
Cursor cursor = getKayit();
showKayitlar(cursor);
}
finally{
kayitlar.close();
}
}


//Bu fonksiyonumuz yeni kayit ekleme fonksiyonudur.
private void addKayit(String ad, String soyad){
//Okuma veya yazma yapmak için veritabanımızı aldık.
SQLiteDatabase db = kayitlar.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(AD, ad);
values.put(SOYAD,soyad);
db.insertOrThrow(TABLE_NAME, null, values);
}

//Seçeceğimiz sütunlar
private static String[] SELECT = {_ID, AD, SOYAD};
private Cursor getKayit(){
SQLiteDatabase db = kayitlar.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, SELECT, null, null, null, null, null);
//Activitynin yaşam döngüsüne göre cursor'da yönetilecek
//Activity bittiğinde tüm açık cursorlar kapatılacak
startManagingCursor(cursor);
return cursor;
}
//Kayitlari ekranda göstermek için
//Bu fonksiyon bir cursor alacak ve çıktıyı kullanıcın okuyabileceği şekilde formatlayacak
private void showKayitlar(Cursor cursor){
StringBuilder builder = new StringBuilder("Kayitlar:\n");
//Sonraki satıra geçerek, tüm satırları tarama
while(cursor.moveToNext()){
//Veritabanından verileri çekme
long id = cursor.getLong(cursor.getColumnIndex(_ID));
String ad = cursor.getString((cursor.getColumnIndex(AD)));
String soyad = cursor.getString((cursor.getColumnIndex(SOYAD)));
builder.append(id).append(": ");
builder.append(ad).append(": ");
builder.append(soyad).append("\n");
}
//Ekranda gösterme, textview'a builderımızı yerleştirecek.
//Tabi bir çok kayıt yer aldığında builderımız kocaman bir string olacak
//Bu nedenle bu yöntem önerilen bir yöntem değildir.
TextView text = (TextView)findViewById(R.id.text);
text.setText(builder);
}

}


Yapılması gereken açıklamaları mümkün olduğunca yorum satırlarıyla yapmaya çalıştım. Bir de ekran görüntülerimizi ekleyelim.

Veritabanımız oluşturuldu:

Kaydımız eklendi:

Ekranda gösterildi: