Android veritabanındaki tabloya kayıt girme, kayıtları gösterme
Bir önceki uygulamamızda veritabanını oluşturmuştuk. Şimdi de verileri kaydedelim ve tablomuzdaki kayıtları gösterelim.
Main.xmli yukarıdaki gibi düzenliyoruz. Edittextlerin adı txtadi ve txtsoyadi.
Butonumuzun adı kaydetbuton…
Largotext yazan textviewimizin adı da sonuc. (sağ tıklayıp edit id ile isimlerini değiştirebilirsiniz)
Aşağıdaki kodları yazıyoruz. Kodların açıklamalarını altına yazdım.
package com.ceylan.veritabani; import android.app.Activity; import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class vtactivity extends Activity { /** Called when the activity is first created. */ private vtolustur ogrenci; //vtolusturdan ogrenci adlı veritabanımızı tanımlıyoruz. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ogrenci=new vtolustur(this, null, null, 1); //veritabanı nesnemizi oluşturuyoruz. final EditText txtadi=(EditText)findViewById(R.id.txtadi); final EditText txtsoyadi=(EditText)findViewById(R.id.txtsoyadi); //txtadi ve txtsoyadi tanımlanıyor. Button kaydetbuton=(Button)findViewById(R.id.kaydetbuton); //butonu tanımlıyoruz. final TextView sonuc=(TextView)findViewById(R.id.sonuc); //gösterilecek sonuçlar için textview tanımlanıyor. kaydetbuton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub kayitekle(txtadi.getText().toString(),txtsoyadi.getText().toString()); //kayitekle methodu çalıştırılıyor, içerisine txtadi ve txtsoyadi parametreleri giriliyor. sonuc.setText("kayıt girildi"); } }); } public void kayitekle(String adi,String soyadi)//kayitekle methodunu oluşturuyoruz { SQLiteDatabase db=ogrenci.getWritableDatabase(); //yazılabilir olarak dbyi tanımlıyoruz. ContentValues veriler = new ContentValues(); //içerikleri girmek için veriler adlı ContentValues oluşturuyoruz. veriler.put("adi", adi); //adi alanına adi parametresi kaydedilecek veriler.put("soyadi",soyadi); //soyadi alanına soyadi parametresi kaydedilecek db.insertOrThrow("ogrenci", null, veriler); //ogrenci tablosunda insert komutunu çalıştırıyoruz. } }
Kayıt girme işlemi tamam. Göstermesini yapalım. Kodları aşağıdaki gibi düzenliyoruz. Açıklamalarını yazdım.
package com.ceylan.veritabani; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class vtactivity extends Activity { /** Called when the activity is first created. */ private vtolustur ogrenci; //vtolusturdan ogrenci adlı veritabanımızı tanımlıyoruz. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ogrenci=new vtolustur(this, null, null, 1); //veritabanı nesnemizi oluşturuyoruz. final EditText txtadi=(EditText)findViewById(R.id.txtadi); final EditText txtsoyadi=(EditText)findViewById(R.id.txtsoyadi); //txtadi ve txtsoyadi tanımlanıyor. Button kaydetbuton=(Button)findViewById(R.id.kaydetbuton); //butonu tanımlıyoruz. final TextView sonuc=(TextView)findViewById(R.id.sonuc); //gösterilecek sonuçlar için textview tanımlanıyor. kaydetbuton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub kayitekle(txtadi.getText().toString(),txtsoyadi.getText().toString()); //kayitekle methodu çalıştırılıyor, içerisine txtadi ve txtsoyadi parametreleri giriliyor. Cursor cursor = KayitGetir(); //cursor tanımlanıyor. (imleç) tablo içerisindeki verilerde dolaşmak için kullanılan bi nesne KayitGoster(cursor); //kayitgoster methodu çağırılıyor. } }); } public void kayitekle(String adi,String soyadi)//kayitekle methodunu oluşturuyoruz { SQLiteDatabase db=ogrenci.getWritableDatabase(); //yazılabilir olarak dbyi tanımlıyoruz. ContentValues veriler = new ContentValues(); //içerikleri girmek için veriler adlı ContentValues oluşturuyoruz. veriler.put("adi", adi); //adi alanına adi parametresi kaydedilecek veriler.put("soyadi",soyadi); //soyadi alanına soyadi parametresi kaydedilecek db.insertOrThrow("ogrenci", null, veriler); //ogrenci tablosunda insert komutunu çalıştırıyoruz. } private String[] SELECT = {"adi", "soyadi"}; //select dizi stringine gösterilecek alanları ekliyoruz. private Cursor KayitGetir(){ SQLiteDatabase db = ogrenci.getReadableDatabase(); Cursor cursor = db.query("ogrenci", SELECT, null, null, null, null, null); startManagingCursor(cursor); return cursor; } //cursor için kullanılan method. private void KayitGoster(Cursor cursor){ StringBuilder builder = new StringBuilder("Kayitlar:"); //stringbuilderdan builder nesnesini oluşturuyoruz ve ilk önce kayıtlar yazdırıyoruz. while(cursor.moveToNext()){ //veritabanındaki tüm satırlar döngü içerisinde çağırılıyor String adi = cursor.getString((cursor.getColumnIndex("adi"))); String soyadi = cursor.getString((cursor.getColumnIndex("soyadi"))); //adi ve soyadi değişkenleri oluşturulup tablodaki kayıtlar aldırılıyor. builder.append("nnAdı:").append(adi); builder.append("nsoyadı:").append(soyadi); //builder içerisine satır boşlukları(n) bırakılarak veritabanından değerler eklettiriliyor. } TextView sonuc=(TextView)findViewById(R.id.sonuc); sonuc.setText(builder); //sonuc textviewine builderdaki bilgiler aktarılıyor. } }