حذف آیتم هم از لیست ویو هم از دیتابیس sqlite
دوستان و اساتید محترم ، سلام
یه لیست ویو دارم که اطلاعاتشو از بانک sqlite میگیره
میخوام وقتی آیتم رو از لیست ویو حذف میکنم از بانک هم حذف بشه
اما متاسفانه هر کدی زدم جواب نگرفتم
البته بگم که آیتم از لیست ویو حذف میشه ولی از بانک حذف نمیشه
این صفحه نمایش لیست ویو م هستش
public class ActivityMain extends Activity {
public ArrayAdapter adapter;
public String category;
@Override
protected void onResume() {
G.currentActivity = this;
super.onResume();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lstContent = (ListView) findViewById(R.id.lstContent);
adapter = new AdapterNote(G.notes);
lstContent.setAdapter(adapter);
Bundle extras = getIntent().getExtras();
if (extras!=null && extras.containsKey("CATEGORY")) {
category = extras.getString("CATEGORY");
Cursor cursor = G.database.rawQuery("SELECT * FROM book WHERE subject LIKE '" + category + "'", null);
/////////
G.notes.clear();
/////////
while (cursor.moveToNext()) {
StructNote book_title = new StructNote();
book_title.title= cursor.getString(cursor.getColumnIndex("title"));
G.notes.add(book_title);
}
cursor.close();
adapter.notifyDataSetChanged();
}
else{
finish();
}
}
}
لطفا دستور درست حذف از بانک رو بفرمایید
و اینکه این دستور حذف رو تو این صفحه باید استفاده کنم یا Adapte Note ؟
امیدوارم تونسته باشم منظورمو رسونده باشم
سپاسگزارم
شما تو رویداد کلیک آیتم ، یه تابع Delete بنویسم ، این تابع یه ورودی داره به اسم ID که در واقع ID اون آیتم در بانک هست ، با توجه به اینکه با حذف از لیست ویو مشکلی نداری ، باید یک کوئری به این شکل در بانک اجرا کنی .
G.database.exec("DELETE FROM book WHERE id="+ID);
پس با این حساب باید تو اکتیویتیه Adapter note این دستور رو بنویسم دیگه آره ؟
در ضمن آی دی اون آیتمی که تو لیست ویو روش کلیک میکنیم رو چطور بدست بیارم که بتونم تو دستوری که نوشتی جایگزین کنم؟
توضیح : رویداد کلیک رو ، روی یه تصویر با نام imgDelete تنظیم کردم.
اینم Adapter Note
public class AdapterNote extends ArrayAdapter<StructNote> {
public AdapterNote(ArrayList<StructNote> array) {
super(G.context, R.layout.adapter_notes, array);
}
public static class ViewHolder {
public ViewGroup layoutRoot;
public TextView txtDescription;
public ImageView imgDelete;
public ViewHolder(View view) {
txtDescription = (TextView) view.findViewById(R.id.txtDescription);
layoutRoot = (ViewGroup) view.findViewById(R.id.layoutRoot);
imgDelete = (ImageView) view.findViewById(R.id.imgDelete);
}
public void fill(final ArrayAdapter<StructNote> adapter, final StructNote item, final int position) {
txtDescription.setText(item.book_title);
imgDelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
adapter.remove(item);
G.database.exec("DELETE FROM book WHERE id="+ID);
});
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
StructNote item = getItem(position);
if (convertView == null) {
convertView = G.inflater.inflate(R.layout.adapter_notes, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .