Soru & Cevap

Listviewden seçileni silme nasıl olacak ...

06.03.2017 - 11:21

package com.hd.hakan.gelir_gider; 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.EditText; import java.util.ArrayList; import java.util.List; public class veritabani extends SQLiteOpenHelper { private static final String DATABASE_NAME="gelirgider"; private static final int DATABASE_VERSION=1; public static final String GELIR_GIDER_TABLO="hesaplama"; public static final String ID="id"; public static final String ACIKLAMA="aciklama"; public static final String TUTAR="tutar"; public static final String ALAN="alan"; public static final String TARIH="tarih"; public veritabani(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE hesaplama(id INTEGER PRIMARY KEY AUTOINCREMENT,aciklama TEXT,tutar TEXT,alan TEXT,tarih TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int i, int i1) { db.execSQL("DROP TABLE IF EXISTS " + GELIR_GIDER_TABLO); onCreate(db); } public void gelirekle(String gelir, String tarih, String aciklama,String tutar){ SQLiteDatabase db=this.getWritableDatabase(); ContentValues cv=new ContentValues(); cv.put(TUTAR,tutar); cv.put(ACIKLAMA,aciklama); cv.put(TARIH,tarih); cv.put(ALAN,gelir); db.insert(GELIR_GIDER_TABLO,null,cv); db.close(); } public List gelirliste() { SQLiteDatabase db = this.getWritableDatabase(); List veriler = new ArrayList(); String[] kolon={ID,ACIKLAMA, TUTAR,ALAN,TARIH}; Cursor cursor = db.query(GELIR_GIDER_TABLO, kolon, null, null, null, null, null); cursor.moveToFirst(); while (cursor.moveToNext()) { veriler.add(cursor.getInt(0) + "-" + cursor.getString(3) + "-" + cursor.getString(4)+ "-" + cursor.getString(1)); } return veriler; } public void sil(long id){ SQLiteDatabase db = this.getWritableDatabase(); db.delete(GELIR_GIDER_TABLO,ID+"=?"+id,null); db.close(); } } veritabanı class'ı yukarıda olduğu gibi /////////////////////////////////////////////////////////////////////////////// package com.hd.hakan.gelir_gider; import android.app.Activity; import android.content.DialogInterface; import android.database.Cursor; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.view.ContextMenu; import android.view.MenuItem; import android.view.View; import android.widget.Adapter; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class gelirtablo extends Activity { ListView liste; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gelirtablo); final ListView gelirlist = (ListView) findViewById(R.id.gelirlist); final EditText harcama = (EditText) findViewById(R.id.harcama); final EditText aciklama = (EditText) findViewById(R.id.acikla); final EditText tarih = (EditText) findViewById(R.id.tarih); Button ekle = (Button) findViewById(R.id.ekle); Date today = new Date(); SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy"); String date = DATE_FORMAT.format(today); tarih.setText(date); ekle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { veritabani db = new veritabani(gelirtablo.this); if (harcama.length() > 0 && aciklama.length() > 0 && tarih.length() > 0) { db.gelirekle(harcama.getText().toString(), aciklama.getText().toString(), tarih.getText().toString(), "G"); Toast.makeText(getApplicationContext(), "Kayıt Başarılı", Toast.LENGTH_LONG).show(); harcama.setText(""); aciklama.setText(""); List veriler = db.gelirliste(); ArrayAdapter adapter = new ArrayAdapter(gelirtablo.this, android.R.layout.simple_list_item_1, android.R.id.text1, veriler); gelirlist.setAdapter(adapter); } else { AlertDialog.Builder alertBuilder = new AlertDialog.Builder(gelirtablo.this); alertBuilder.setTitle("Opsss Eksik Bir Şeyler Var!!!"); alertBuilder.setMessage("Lütfen Girdiğiniz Verileri Kontrol Edin"); alertBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); alertBuilder.create().show(); } } }); Button ac = (Button) findViewById(R.id.button4); ac.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { veritabani db = new veritabani(gelirtablo.this); List veriler = db.gelirliste(); ArrayAdapter adapter = new ArrayAdapter(gelirtablo.this, android.R.layout.simple_list_item_1, android.R.id.text1, veriler); gelirlist.setAdapter(adapter); } }); gelirlist.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; menu.add(0, 0, 0, "sil"); menu.add(0, 1, 0, "düzenle"); } }); } @Override public boolean onContextItemSelected(MenuItem item) { final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); AlertDialog.Builder builder=new AlertDialog.Builder(this); if (item.getItemId()==0){ builder.setTitle("Veri Silme"); builder.setMessage("Seçilen Veri Silinecek..."); builder.setPositiveButton("Evet", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int i) { liste= (ListView) info.targetView.findViewById(android.R.id.list); String sil=liste.getItemAtPosition(info.position).toString(); String[] dizi=sil.split("-"); long id=Long.parseLong(dizi[0]); veritabani db = new veritabani(gelirtablo.this); db.sil(id); Toast.makeText(getApplicationContext(), "Veriniz Silinmiştir", Toast.LENGTH_LONG).show(); } }); builder.setNegativeButton("Hayır", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "İşlem İptal Edildi", Toast.LENGTH_LONG).show(); } }); AlertDialog dialog=builder.create(); dialog.show(); } return super.onContextItemSelected(item); } } listviewdeki seçilen bir veriyi silmeye çalıştığımda hata veriyor.işin içinden çıkamadım neyi göszden kaçırıyorum anlamadım. yardımcı olursanız sevinirim...

12 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user hakandogantr
hakandogantr
09.03.2017 - 01:11

gerek kalmadı ben yaptım teşekkürler