使用RecyclerView删除SQLite行

时间:2014-10-31 03:29:06

标签: android sqlite android-recyclerview

有没有办法用RecyclerView删除SQLite中的一行数据?在我使用ListView之前,我只需设置onClickListener并执行:

public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)

然后将id传递到我的数据库,如:databaseAdapter.deleteScore(id)

但是既然它已经在RecyclerViewAdapter类处理了,你仍然可以得到行ID并将其删除吗?

1 个答案:

答案 0 :(得分:0)

想出来。我所做的是在RecyclerView's onLongClick(final View view)我创建了一个我的sql数据库的实例并将其命名为deleteScore方法:sqLiteDBadapter.deleteScore(temp2);&lt; - temp2是列表项的rowid sql数据库。

以下是我的getRowid课程中的deleteScoreSQLiteDBadapter方法:

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;
}