mamali_
شنبه 13 شهریور 1395, 13:20 عصر
سلام دوستان من یک برنامه ای دارم که در ان اطلاعاتی ک در دیتا بیسم ذخیره شده را در لیت ویو برای نمایش میفرستم.
اکنون مشکلم این است ک هرگاه از لیست ویو یک ایتم حذف میکنم میخاهم از دیتا بیس هم حذف شود ولی نمیشه کدهای کلاس های مربوطه به همراه خطایی ک میده در ضمیمه هست لطفا راهنمایی کنید
//حذف از جدول
public void Remove(long id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(tbl_data, Id + "=" + id, null);
//db.delete(tbl_data, Id + " =?", new String[]{ String.valueOf(id) });
// String object = String.valueOf(id);
// db.execSQL("DELETE FROM tbl_data WHERE ID='" + object + "'");
}
کدهای داخل اکتیویتی اصلیم:
//dakhele on creat
//برای حذف کردن
lst_data.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
dbh.getWritableDatabase();
// dbh.Remove(position);
removeItemFromList(position);
}
});
// متدی برای حذف از لیست ویو
protected void removeItemFromList(int position) {
final int deletePosition = position;
AlertDialog.Builder alert = new AlertDialog.Builder(
MainActivity.this);
alert.setTitle("حذف");
alert.setMessage("آیا میخواهید این اعلان حذف شود؟");
alert.setPositiveButton("بله", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// در صورت زدن دکمه بله
dbh.Remove(deletePosition);
DataLList.remove(deletePosition);
adapter.notifyDataSetChanged();
//adapter.notifyDataSetInvalidated();
//adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("لغو", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
alert.show();
}
//متدی برای استفاده از متد پر کردن لیست ویو
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
DataLList = new ArrayList<HashMap<String, String>>();
FillData();
}
// متد پر کردن لیست ویو
private void FillData()
{
db = dbh.getReadableDatabase();
Cursor cursors = db.rawQuery("select * from " + dbh.tbl_data, null);
String msg;
String datetime;
for (int i = 0; i < cursors.getCount(); i++) {
cursors.moveToNext();
HashMap<String, String> map = new HashMap<String, String>();
msg = cursors.getString(cursors.getColumnIndex("msg"));
datetime = cursors.getString(cursors.getColumnIndex("datetime"));
// list = cursors.getString(cursors.getColumnIndex("list"));
map.put("msg", msg);
map.put("datetime", datetime);
DataLList.add(map);
}
adapter = new mozhgan.Test3.ListAdapter(this, DataLList);
lst_data.setAdapter(adapter);
}
داخل کلاس آداپتور:
dViewById(R.id.list_list);*/
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
HashMap<String, String> map = list.get(position);
holder.txtFirst.setText(map.get("msg"));
holder.txtSecond.setText(map.get("datetime"));
http://s6.picofile.com/file/8266100250/ScreenShot_20160901112524.jpeg
اکنون مشکلم این است ک هرگاه از لیست ویو یک ایتم حذف میکنم میخاهم از دیتا بیس هم حذف شود ولی نمیشه کدهای کلاس های مربوطه به همراه خطایی ک میده در ضمیمه هست لطفا راهنمایی کنید
//حذف از جدول
public void Remove(long id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(tbl_data, Id + "=" + id, null);
//db.delete(tbl_data, Id + " =?", new String[]{ String.valueOf(id) });
// String object = String.valueOf(id);
// db.execSQL("DELETE FROM tbl_data WHERE ID='" + object + "'");
}
کدهای داخل اکتیویتی اصلیم:
//dakhele on creat
//برای حذف کردن
lst_data.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
dbh.getWritableDatabase();
// dbh.Remove(position);
removeItemFromList(position);
}
});
// متدی برای حذف از لیست ویو
protected void removeItemFromList(int position) {
final int deletePosition = position;
AlertDialog.Builder alert = new AlertDialog.Builder(
MainActivity.this);
alert.setTitle("حذف");
alert.setMessage("آیا میخواهید این اعلان حذف شود؟");
alert.setPositiveButton("بله", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// در صورت زدن دکمه بله
dbh.Remove(deletePosition);
DataLList.remove(deletePosition);
adapter.notifyDataSetChanged();
//adapter.notifyDataSetInvalidated();
//adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("لغو", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
alert.show();
}
//متدی برای استفاده از متد پر کردن لیست ویو
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
DataLList = new ArrayList<HashMap<String, String>>();
FillData();
}
// متد پر کردن لیست ویو
private void FillData()
{
db = dbh.getReadableDatabase();
Cursor cursors = db.rawQuery("select * from " + dbh.tbl_data, null);
String msg;
String datetime;
for (int i = 0; i < cursors.getCount(); i++) {
cursors.moveToNext();
HashMap<String, String> map = new HashMap<String, String>();
msg = cursors.getString(cursors.getColumnIndex("msg"));
datetime = cursors.getString(cursors.getColumnIndex("datetime"));
// list = cursors.getString(cursors.getColumnIndex("list"));
map.put("msg", msg);
map.put("datetime", datetime);
DataLList.add(map);
}
adapter = new mozhgan.Test3.ListAdapter(this, DataLList);
lst_data.setAdapter(adapter);
}
داخل کلاس آداپتور:
dViewById(R.id.list_list);*/
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
HashMap<String, String> map = list.get(position);
holder.txtFirst.setText(map.get("msg"));
holder.txtSecond.setText(map.get("datetime"));
http://s6.picofile.com/file/8266100250/ScreenShot_20160901112524.jpeg