光标删除位置

时间:2014-12-18 16:11:51

标签: android sqlite position cursor

为什么? 请

选择代码

private void selectData() {

    String sql = "select ID, money, memo, date, type from " + _TABLENAME;
    mCursor = mDbOpenHelper.mDB.rawQuery(sql, null);
    mCursor.moveToFirst();
    while (!mCursor.isAfterLast()) {
        mi = new MyItem(
                mCursor.getString(0),
                mCursor.getString(3),
                mCursor.getString(2),
                mCursor.getString(1),
                mCursor.getString(4));
        arItem.add(mi);
        mCursor.moveToNext();
    }
    mCursor.close();
}

删除按钮单击,删除代码

@Override
public void onClick(DialogInterface dialog, int which) {
    /* problem */

    final String sql = "delete from "+_TABLENAME+" where ID = "+ selectPosition;
}
});

1 个答案:

答案 0 :(得分:2)

您的id错了,您应该使用通过光标重新编写的ID,而不是位置。你可以试试这样的东西

 String sql = "delete from "+_TABLENAME+" where ID = "+ mi.get(selectPosition).id;

此处mi.get(selectedPosition)返回您在selectData方法中添加的相应对象,.id获取您通过构造函数传递给它的ID。您应该使用正确的变量名来实现此目的