有没有办法用RecyclerView
删除SQLite中的一行数据?在我使用ListView
之前,我只需设置onClickListener
并执行:
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)
然后将id
传递到我的数据库,如:databaseAdapter.deleteScore(id)
但是既然它已经在RecyclerViewAdapter
类处理了,你仍然可以得到行ID并将其删除吗?
答案 0 :(得分:0)
想出来。我所做的是在RecyclerView's
onLongClick(final View view)
我创建了一个我的sql数据库的实例并将其命名为deleteScore方法:sqLiteDBadapter.deleteScore(temp2);
&lt; - temp2是列表项的rowid sql数据库。
以下是我的getRowid
课程中的deleteScore
和SQLiteDBadapter
方法:
getRowid:
public String getRowid(String date) {
mDbHelper = new DatabaseHelper(context);
db = mDbHelper.getReadableDatabase();
Cursor c = db.rawQuery("SELECT * from " + DATABASE_TABLE + " WHERE date = ?" , new String[] { date });
if (c.moveToFirst()){
long temp;
temp = c.getLong(c.getColumnIndex(KEY_ROWID));
rowID = String.valueOf(temp);
Log.i("----_ROW ID = ", rowID);
}else if (!c.moveToFirst())
Log.i("CURSOR ERROR", " CURSOR INDEX MOST LIKELY 0");
else
c.moveToFirst();
return rowID;
}
deleteScore:
public boolean deleteScore(long rowId) {
return db.delete(DATABASE_TABLE,KEY_ROWID + "= ?", new String[] { rowID}) > 0;
}