AndroidStudio Küçük rehber yapımı
Bu başlık altında resimde gördüğünüz gibi basit bir rehber veya kayıt listesi tarzında uygulama yapacağız.
Öncelikle xml kısmının kodlarını vereyim.
Bu kısımı anlatma gereği duymuyorum androidstudio zaten sürükle bırak özelliği olan bir derleyici bu kodlar da sürükle bırak komutlarının eseridir.Şimdi 2 adet java dosyamız var bunlardan birisi veritabani diğeri ise MainActivityİlk önce veri tabani dosyamıza bakalım.
Gerekli olan kütüphaneler import edildikten sonra neler yapmışız bir bakalım. Bize en gerekli olan değişkenlerimiz olanVeri tabanımızın adıOluşturacağımız tablonun adıVe tabloda bulunacak olan sütun(kolon) isimleriBunları sırayla değişkenlerin içine kaydettik veri tabanını oluştururken veya tablodan veri çekerken bu değişkenleri kullanacağız.Başlarkenİlk önce oluşturmamız gereken Fonksiyonlardan bir tanesi onCreate fonksiyonudurBu fonksiyonumuzun içine bir adet SQLiteDatabase parametresini ekliyoruz.Daha sonra da veri tabanını oluşturmak için gerek sql komutunu giriyoruz.db.execSQL komutu ile yazmış olduğumuz sql komutunu execute(çalıştır) gönderiyoruz.Program GüncellendiğindeGenel olarak oluşturmamız gereken ikinci bir fonksiyon daha var bu fonksiyon ise onUpgrade bu fonksiyon uygulama güncellendiğinde çalıştırılacak bir fonksiyondur. Örneğin yeni bir tablo oluşturacaksanız eski tabloyu silmek isteyebilirsiniz veya tabloya yeni bir sütun eklemek için gerekli komutlar onUpgrade kısmına yazılabilir.Daha sonra ise bizim programımızda kullanacak olduğumuz fonksiyonlara geldi sıraVeri eklemekBen ekle fonksiyonunun geri dönüş değerini boolean yaptım bu sayede eklenip eklenmediğini kontrol edebilirim.ekle fonksiyonum içine iki adet değer alıyor bunlar bizim veri tabanına ekleyecek olduğumuz kısımlar isim ve numara.Yazılabilir veritabanımızı oluşturduğumuz sınıftan alıyoruzdaha sonra içine Ekleyecek olduğumuz verileri koyabileceğimiz ContentValues değişkenimizi oluşturuyoruz.oluşturduğumuz ContentValues değişkenine put komutu ile ilgili sütunlara ilgili girdileri ekliyoruzişlemler bittikten sonra veritabanımza insert ile değişkenlerimizi eklediğimiz ContentValues imizi ekliyoruz.En sonda da eğer işlemimiz doğru bir şekilde tamamlandıysa sonuç olarak true değerini döndürüyoruz.Eğer yanlışsa false değişkenini döndürüyoruz.Tabloyu sıfırlamaSifirla fonksiyonumuz ise veri tabanımızın içinde bulunan tablomuzun girdilerini sıfırlamamızı sağlıyoruz.veritabanımızı oluşturduğumuz sınıftan çekiyoruz ve tablodan silmek için gerekli sql komutunu yazıyoruz.db.execSQL komutu ile sorgumuzu çalıştırıyoruz.Kayıtları getirmeKayıt getir Fonksiyonumuz bizim tablomuzda o an bulunan kayıtları getiren fonksiyonumuz.bunun için öncelikle sınıftan veritabanımızı çekiyoruz.daha sonra bu veritabanımızın bize gönderecek olduğu değeri kayıtta tutabilmek için Cursor değişkeni oluşturuyoruz.cursor değişkeninin içine db.rawQuery komutunu kullanarak tablomuzdaki verileri ekliyoruz.En son olarak da doldurduğumuz Cursor değişkenimizi döndürüyoruz.
Main Activity
Öncelikle sınıfımızı oluştururken layout üzerinde kullandığımız butonları kullanabilmek için java klasörümüzün içinde oluşturuyoruz.
onCreate
Sınıfımızın en üstünde oluşturduğumuz buton editText ve ListView gibi kısımları Layout üzerindeki butonlar ile eşliyoruz.
Daha sonra Eşlediğimiz butonları ClickListener (Tıklama dinleme) eventini ekliyoruz yani buton tıklandığında çalıştırılacak olan fonksiyon.
Veri Kaydetme
Girilen isimi ve numarayı değişkenlerinin içine kaydediyoruz. Daha sonra girilen değerlerin uzunluklarını kontrol ederek bilgi girilip girilmediğinin kontrolünü sağlıyoruz. Eğer bilgi girilmediyse Toast kullanarak uyarı mesajı veriyoruz.
Bilgi girilmiş ise oluşturduğumuz veritabanındaki ekle fonksiyona aldığımız parametreleri yolluyoruz (isim,numara);
Daha sonra ise kayıt görüntüleme işlemini yapıyoruz..
Verileri silme
Basit bir uygulama olduğu için butona tıklandığında, oluşturduğumuz veri tabanı içindeki sil komutunu çalıştırarak bütün verileri siliyoruz. Daha sonra ise kayıt görüntüleme işlemini çalıştırıyoruz.
Kayıtları Görüntüleme
Bu kısımda bir cursor içine veritabanımızdan çektiğimiz değişkenleri kaydediyoruz. Eğer içerik boşsa Toast kullanarak uyarı mesajı veriyoruz. Değilse while döngüsünü kullanarak oluşturduğumuz ArrayAdapter'in içine add komutu ile ekliyoruz [Cursordan bilgi çekerken data.get"VERİTİPİ"(Kolon sırası) şeklinde kullanıyoruz] en son olarak da layout üzerindeki liste kısmının ArrayAdapterini bizim az önce doldurduğumuz adapter olarak tanımlıyoruz.
Öncelikle xml kısmının kodlarını vereyim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="21dp" android:layout_marginTop="38dp" android:text="İsim" /> <TextView android:id="@+id/textView4" android:layout_width="61dp" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="17dp" android:layout_marginTop="88dp" android:text="Numara" /> <EditText android:id="@+id/et_isim" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginStart="58dp" android:layout_marginTop="18dp" android:layout_toEndOf="@+id/textView3" android:ems="10" android:inputType="textPersonName" android:text="Name" /> <EditText android:id="@+id/et_numara" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/et_isim" android:layout_alignParentEnd="true" android:layout_marginStart="27dp" android:layout_marginTop="9dp" android:layout_marginEnd="64dp" android:layout_toEndOf="@+id/textView4" android:ems="10" android:inputType="phone" /> <Button android:id="@+id/btn_kaydet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="150dp" android:layout_marginEnd="-58dp" android:layout_toStartOf="@+id/et_isim" android:text="Kaydet" /> <Button android:id="@+id/btn_listele" android:layout_width="133dp" android:layout_height="wrap_content" android:layout_alignTop="@+id/btn_kaydet" android:layout_alignParentStart="true" android:layout_marginStart="116dp" android:text="Kayıtları Görüntüle" /> <LinearLayout android:layout_width="335dp" android:layout_height="267dp" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_marginEnd="30dp" android:layout_marginBottom="22dp" android:orientation="vertical"> <ListView android:id="@+id/lv_kayitlar" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> <Button android:id="@+id/btn_sil" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginStart="20dp" android:layout_marginTop="154dp" android:layout_toEndOf="@+id/btn_listele" android:text="Kayıtları Sil" /> </RelativeLayout> |
Bu kısımı anlatma gereği duymuyorum androidstudio zaten sürükle bırak özelliği olan bir derleyici bu kodlar da sürükle bırak komutlarının eseridir.Şimdi 2 adet java dosyamız var bunlardan birisi veritabani diğeri ise MainActivityİlk önce veri tabani dosyamıza bakalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | package com.example.erdinyaan.rehber1; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.widget.Toast; public class veritabani extends SQLiteOpenHelper { public static final String veritabani_adi="kayitlar.db"; public static final String tablo_adi="kisiler"; public static final String kolon1="ID"; public static final String kolon2="isim"; public static final String kolon3="numara"; public veritabani(Context context){super(context,veritabani_adi,null,1);} @Override public void onCreate(SQLiteDatabase db) { String tablo_olustur="Create table "+tablo_adi+"(ID INTEGER PRIMARY KEY AUTOINCREMENT , isim TEXT, numara TEXT)"; db.execSQL(tablo_olustur); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE "+tablo_adi); } public boolean ekle(String isim, String numara){ SQLiteDatabase db=this.getWritableDatabase(); ContentValues contentValues=new ContentValues(); contentValues.put(kolon2,isim); contentValues.put(kolon3,numara); long result=db.insert(tablo_adi,null,contentValues); if(result==-1){ return false; } return true; } public void sifirla(){ SQLiteDatabase db=this.getWritableDatabase(); db.execSQL("Delete from "+tablo_adi); } public Cursor kayitGetir(){ SQLiteDatabase db=this.getWritableDatabase(); Cursor veri=db.rawQuery("SELECT * FROM "+tablo_adi,null); return veri; } } |
Gerekli olan kütüphaneler import edildikten sonra neler yapmışız bir bakalım. Bize en gerekli olan değişkenlerimiz olanVeri tabanımızın adıOluşturacağımız tablonun adıVe tabloda bulunacak olan sütun(kolon) isimleriBunları sırayla değişkenlerin içine kaydettik veri tabanını oluştururken veya tablodan veri çekerken bu değişkenleri kullanacağız.Başlarkenİlk önce oluşturmamız gereken Fonksiyonlardan bir tanesi onCreate fonksiyonudurBu fonksiyonumuzun içine bir adet SQLiteDatabase parametresini ekliyoruz.Daha sonra da veri tabanını oluşturmak için gerek sql komutunu giriyoruz.db.execSQL komutu ile yazmış olduğumuz sql komutunu execute(çalıştır) gönderiyoruz.Program GüncellendiğindeGenel olarak oluşturmamız gereken ikinci bir fonksiyon daha var bu fonksiyon ise onUpgrade bu fonksiyon uygulama güncellendiğinde çalıştırılacak bir fonksiyondur. Örneğin yeni bir tablo oluşturacaksanız eski tabloyu silmek isteyebilirsiniz veya tabloya yeni bir sütun eklemek için gerekli komutlar onUpgrade kısmına yazılabilir.Daha sonra ise bizim programımızda kullanacak olduğumuz fonksiyonlara geldi sıraVeri eklemekBen ekle fonksiyonunun geri dönüş değerini boolean yaptım bu sayede eklenip eklenmediğini kontrol edebilirim.ekle fonksiyonum içine iki adet değer alıyor bunlar bizim veri tabanına ekleyecek olduğumuz kısımlar isim ve numara.Yazılabilir veritabanımızı oluşturduğumuz sınıftan alıyoruzdaha sonra içine Ekleyecek olduğumuz verileri koyabileceğimiz ContentValues değişkenimizi oluşturuyoruz.oluşturduğumuz ContentValues değişkenine put komutu ile ilgili sütunlara ilgili girdileri ekliyoruzişlemler bittikten sonra veritabanımza insert ile değişkenlerimizi eklediğimiz ContentValues imizi ekliyoruz.En sonda da eğer işlemimiz doğru bir şekilde tamamlandıysa sonuç olarak true değerini döndürüyoruz.Eğer yanlışsa false değişkenini döndürüyoruz.Tabloyu sıfırlamaSifirla fonksiyonumuz ise veri tabanımızın içinde bulunan tablomuzun girdilerini sıfırlamamızı sağlıyoruz.veritabanımızı oluşturduğumuz sınıftan çekiyoruz ve tablodan silmek için gerekli sql komutunu yazıyoruz.db.execSQL komutu ile sorgumuzu çalıştırıyoruz.Kayıtları getirmeKayıt getir Fonksiyonumuz bizim tablomuzda o an bulunan kayıtları getiren fonksiyonumuz.bunun için öncelikle sınıftan veritabanımızı çekiyoruz.daha sonra bu veritabanımızın bize gönderecek olduğu değeri kayıtta tutabilmek için Cursor değişkeni oluşturuyoruz.cursor değişkeninin içine db.rawQuery komutunu kullanarak tablomuzdaki verileri ekliyoruz.En son olarak da doldurduğumuz Cursor değişkenimizi döndürüyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | package com.example.erdinyaan.rehber1; import android.database.Cursor; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { veritabani vt; Button kaydet,goruntule,sil; EditText isim,numara; ListView liste; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vt=new veritabani(this); isim=(EditText)findViewById(R.id.et_isim); numara=(EditText)findViewById(R.id.et_numara); liste=(ListView)findViewById(R.id.lv_kayitlar); kaydet=(Button)findViewById(R.id.btn_kaydet); goruntule=(Button)findViewById(R.id.btn_listele); sil=(Button)findViewById(R.id.btn_sil); final ArrayList <String> kayitlar=new ArrayList<>(); final ListAdapter listAdapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,kayitlar); kaydet.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String i=isim.getText().toString(); String n=numara.getText().toString(); if(i.length()==0 || n.length()==0){ Toast.makeText(MainActivity.this,"Bilgi Girilmedi ?",Toast.LENGTH_SHORT).show(); }else{ vt.ekle(i,n); Toast.makeText(MainActivity.this,"Kayıt Edildi!",Toast.LENGTH_SHORT).show(); } Cursor data=vt.kayitGetir(); if(data.getCount()==0){ Toast.makeText(MainActivity.this,"Veri yok!",Toast.LENGTH_SHORT).show();; }else{ ((ArrayAdapter) listAdapter).clear(); while(data.moveToNext()){ kayitlar.add(data.getString(1)+"->"+data.getString(2)); } liste.setAdapter(listAdapter); } } }); sil.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { vt.sifirla(); Cursor data=vt.kayitGetir(); if(data.getCount()==0){ Toast.makeText(MainActivity.this,"Veri yok!",Toast.LENGTH_SHORT).show();; }else{ ((ArrayAdapter) listAdapter).clear(); while(data.moveToNext()){ kayitlar.add(data.getString(1)+"->"+data.getString(2)); } liste.setAdapter(listAdapter); } } }); goruntule.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Cursor data=vt.kayitGetir(); if(data.getCount()==0){ Toast.makeText(MainActivity.this,"Veri yok!",Toast.LENGTH_SHORT).show();; }else{ ((ArrayAdapter) listAdapter).clear(); while(data.moveToNext()){ kayitlar.add(data.getString(1)+"->"+data.getString(2)); } liste.setAdapter(listAdapter); } } }); } } |
Main Activity
Öncelikle sınıfımızı oluştururken layout üzerinde kullandığımız butonları kullanabilmek için java klasörümüzün içinde oluşturuyoruz.
onCreate
Sınıfımızın en üstünde oluşturduğumuz buton editText ve ListView gibi kısımları Layout üzerindeki butonlar ile eşliyoruz.
Daha sonra Eşlediğimiz butonları ClickListener (Tıklama dinleme) eventini ekliyoruz yani buton tıklandığında çalıştırılacak olan fonksiyon.
Veri Kaydetme
Girilen isimi ve numarayı değişkenlerinin içine kaydediyoruz. Daha sonra girilen değerlerin uzunluklarını kontrol ederek bilgi girilip girilmediğinin kontrolünü sağlıyoruz. Eğer bilgi girilmediyse Toast kullanarak uyarı mesajı veriyoruz.
Bilgi girilmiş ise oluşturduğumuz veritabanındaki ekle fonksiyona aldığımız parametreleri yolluyoruz (isim,numara);
Daha sonra ise kayıt görüntüleme işlemini yapıyoruz..
Verileri silme
Basit bir uygulama olduğu için butona tıklandığında, oluşturduğumuz veri tabanı içindeki sil komutunu çalıştırarak bütün verileri siliyoruz. Daha sonra ise kayıt görüntüleme işlemini çalıştırıyoruz.
Kayıtları Görüntüleme
Bu kısımda bir cursor içine veritabanımızdan çektiğimiz değişkenleri kaydediyoruz. Eğer içerik boşsa Toast kullanarak uyarı mesajı veriyoruz. Değilse while döngüsünü kullanarak oluşturduğumuz ArrayAdapter'in içine add komutu ile ekliyoruz [Cursordan bilgi çekerken data.get"VERİTİPİ"(Kolon sırası) şeklinde kullanıyoruz] en son olarak da layout üzerindeki liste kısmının ArrayAdapterini bizim az önce doldurduğumuz adapter olarak tanımlıyoruz.
Yorumlar
Yorum Gönder