2014-10-31 99 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; 
}