2014-10-31 3 views
1

Есть ли способ удалить строку данных в SQLite с помощью RecyclerView? Раньше, когда я использовал ListView я просто установить и onClickListener и сделал:Удалить строку SQLite с RecyclerView

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

Затем прошел id на мою базу данных следующим образом: databaseAdapter.deleteScore(id)

но теперь, так как все это обрабатывается в RecyclerViewAdapter классе может вы все равно получаете идентификатор строки и удаляете его?

ответ

0

Выяснил это. То, что я сделал, было в RecyclerView'sonLongClick(final View view) Я создал экземпляр моей базы данных sql и назвал метод deleteScore следующим: sqLiteDBadapter.deleteScore(temp2); < - 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; 
}