我有一个记事本应用程序,可将注释存储在sqlite数据库中并在recyclerview中显示。我的回收者视图中有一个可绘制对象,我想通过单击它来删除数据库行。使用我编写的代码,当我单击图像时,recycleview项目消失了,但是当我再次打开应用程序时,笔记仍然存在。我不知道如何删除它。这是我的代码:
maven-ear-plugin
这是我的Databasehelper类以及insert和delete方法
public class ModelRs {
private String title;
private String content;
int id ;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
这是我的recyclerview适配器。点击侦听器方法中的图像位于视图持有人类中
public void insert(ModelRs modelRs) {
ContentValues values = new ContentValues();
values.put(c_title, modelRs.getTitle());
values.put(c_content, modelRs.getContent());
values.put(c_id,modelRs.getId());
try {
this.getWritableDatabase().insert(t_name, null, values);
} catch (Exception e) {
e.printStackTrace();
}
}
public List<ModelRs> list() {
List<ModelRs> list = new ArrayList<>();
Cursor c = this.getWritableDatabase().query(t_name, new String[]{c_id, c_title, c_content}, null, null, null, null, null);
if (c.moveToFirst()) {
do {
ModelRs modelRs = new ModelRs();
modelRs.setTitle(c.getString(c.getColumnIndex(c_title)));
modelRs.setContent(c.getString(c.getColumnIndex(c_content)));
list.add(modelRs);
} while (c.moveToNext());
}
return list;
}
public void delete(int id) {
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
sqLiteDatabase.delete(t_name, c_id + "=" + id, null) ;
}
}
我是SQLite数据库的新手。如果可以,请帮助我
答案 0 :(得分:0)
您必须在viewholder类上编写onClick事件。在您的情况下为“ ViewHolderMain”。您必须输入
itemView.setClickable(true);
在ViewHolderMain构造函数上。那么您只需编写点击事件。
ImageDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Your delete method
}
});
从sqlite删除项目后,您必须添加
notifyDataSetChanged();
也可以从视图中删除该项目。