2014-10-31 104 views
1

有沒有辦法用RecyclerView刪除SQLite中的一行數據?以前當我用一個ListView我只設置和onClickListener,做:用RecyclerView刪除SQLite行

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

然後通過id到我的數據庫,像這樣:databaseAdapter.deleteScore(id)

但現在,因爲它是所有在RecyclerViewAdapter類處理能你仍然得到行ID並刪除它?

回答

0

想通了。我所做的是在RecyclerView'sonLongClick(final View view)我創建了一個我的sql數據庫的實例,並調用我的deleteScore方法,如下所示:sqLiteDBadapter.deleteScore(temp2); < - temp2是sql數據庫中列表項的rowid。

這裏是我的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; 
}