【问题标题】:Delete SQLite row with RecyclerView使用 RecyclerView 删除 SQLite 行
【发布时间】:2014-10-31 03:29:06
【问题描述】:

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

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

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

但现在既然都在RecyclerViewAdapter 类中处理,你还能获取行ID 并删除它吗?

【问题讨论】:

    标签: android sqlite android-recyclerview


    【解决方案1】:

    想通了。我所做的是在RecyclerView'sonLongClick(final View view)中创建了我的sql数据库实例并调用了我的deleteScore方法:sqLiteDBadapter.deleteScore(temp2);

    这是我的getRowiddeleteScore 类中的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;
    }
    

    删除分数:

    public boolean deleteScore(long rowId) {
        return db.delete(DATABASE_TABLE,KEY_ROWID + "= ?", new String[] { rowID}) > 0;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      相关资源
      最近更新 更多