Son adroid ders anlatimimizda da güncelleme ve silme islemini yapacagiz. Listelemenin yapildigi sayfadan listview de tiklanan satir bu sayfaya ayrintili olarak yazilir, gerekli alanlara. Daha sonra güncelleme yapilacaksa gerekli sekilde alanlar degistirilir. Ve güncelle butonu tiklanir. Ya da silme yapilacaksa sil butonu tiklanir.
Sqlite veritabaninda delete -sil-, update -güncelle- islemi yapacagiz. Öncelikle gerekli tasarimi yapmamiz gerekiyor asagidaki gibi.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/ysl" android:orientation="vertical" > <EditText android:id="@+id/EdtKulAdLst" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="48dp" android:ems="10" android:hint="@string/kullan_c_ad_" android:textColor="#000000"> </EditText> <EditText android:id="@+id/EdtSifreLst" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/EdtKulAdLst" android:ems="10" android:hint="@string/sifre_" android:textColor="#000000"/> <EditText android:id="@+id/EdtKulYerLst" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/EdtSifreLst" android:ems="10" android:hint="@string/kullan_m_yeri_" android:textColor="#000000" /> <EditText android:id="@+id/EdtHesNoLst" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/EdtKulYerLst" android:ems="10" android:inputType="phone" android:hint="@string/hesap_no_" android:textColor="#000000" /> <Button android:id="@+id/BtnGuncelle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:text="@string/g_ncelle" /> <Button android:id="@+id/BtnSil" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/BtnGuncelle" android:text="@string/sil" /> </RelativeLayout>
Asagida .java sinifinin kodlari ve açiklamasi verilmistir.
Veritabani sifre; //veritabani nesnesi private EditText Edt_Kuladi,Edt_sifre,Edt_KulYer,Edt_HesNo; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list_actvity); sifre = new Veritabani(this); Edt_Kuladi=(EditText) findViewById(R.id.EdtKulAdLst);//edittext nesnesi Edt_sifre=(EditText) findViewById(R.id.EdtSifreLst);//edittext nesnesi Edt_KulYer=(EditText) findViewById(R.id.EdtKulYerLst);//edittext nesnesi Edt_HesNo=(EditText) findViewById(R.id.EdtHesNoLst);//edittext nesnesi Button guncelleBtn = (Button) findViewById(R.id.BtnGuncelle);//button nesnesi Button SilBtn = (Button) findViewById(R.id.BtnSil);//button nesnesi final int id ;//id tanimlanir id = lstvwMain.idSnf;//listview'den gelen id alinir ayrintiliList(id);//metoda bu id parametresi gönderilerek id ye karsilik gelen veritabanindan diger bilgiler çekilir. guncelleBtn.setOnClickListener(new View.OnClickListener() {//güncelle butonu oncilick public void onClick(View v) { KayitGuncelle(id, Edt_Kuladi.getText().toString(), Edt_sifre.getText().toString(), Edt_KulYer.getText().toString(),Integer.parseInt(Edt_HesNo.getText().toString()));//parametreler metoda gönderilir. } }); SilBtn.setOnClickListener(new View.OnClickListener() {//sil butonu oncilick metodu public void onClick(View v) { KayitSil(id);//metoda id degeri gönderilir. } }); } public void KayitGuncelle(long id, String Kad, String sifr, String Kyr, int hsNo) {//kayit güncelle metodu ContentValues cv = new ContentValues();//contentvalues nesnesi cv.put("kullanici_adi", Kad);//yeni kullanici_adi cv.put("sifre", sifr);//yeni sifre cv.put("kullanilan_yer", Kyr);//yeni kullanilan_yer cv.put("hesap_no", hsNo);//yeni hesap_no SQLiteDatabase db = sifre.getWritableDatabase(); db.update("sifre", cv, "id" + "=" + id, null);//id degerine göre güncelleme yapilir startActivity(new Intent("android.intent.action.LSTVWMAIN"));// güncelleme islemi bittikten sonra aktif edilecek ekran belirlenir. } protected void KayitSil(long id) {//sil metodu SQLiteDatabase db=sifre.getReadableDatabase();//sqlite veritabani nesnesi db.delete("sifre", "id" + "=" + id, null);//id degerine göre Toast.makeText(getApplicationContext(), "Kayit Silindi" , Toast.LENGTH_LONG).show();//uyari mesaji startActivity(new Intent("android.intent.action.LSTVWMAIN")); //silindikten sonra aktif olacak ekran } public void ayrintiliList(int id){//listview de tiklanan satirin id'si select edilerek ayrintili sekilde listelenir. String selectQuery = "SELECT * FROM sifre WHERE id="+id;//sql sorgusu SQLiteDatabase db = sifre.getReadableDatabase();// veritabaninin ne amaçla açildigi belirtilir -okuma, yazma- Cursor cursor = db.rawQuery(selectQuery, null); //sorgu execute edilir if(cursor.moveToFirst()){ String k_adi = cursor.getString((cursor.getColumnIndex("kullanici_adi"))); //degerler okunur long idd = cursor.getLong(cursor.getColumnIndex("id"));//degerler okunur String sifre = cursor.getString((cursor.getColumnIndex("sifre")));//degerler okunur String k_yeri = cursor.getString((cursor.getColumnIndex("kullanilan_yer")));//degerler okunur int h_No = cursor.getInt((cursor.getColumnIndex("hesap_no"))); //degerler okunur Edt_Kuladi.setText(k_adi);//okunan degerler edittext'lere yazilir Edt_sifre.setText(sifre);//okunan degerler edittext'lere yazilir Edt_KulYer.setText(k_yeri);//okunan degerler edittext'lere yazilir Edt_HesNo.setText(h_No+"");//okunan degerler edittext'lere yazilir }while (cursor.moveToNext()); cursor.close(); db.close(); }