1

我正在Android中创建一个程序,在我计划迭代数据库中的行的一个屏幕上,将每一行呈现给用户并让他跳过或删除它。

在 Java 中,我可以使用ResultSetdeleteRow () 方法,但是 android 目前没有等效的方法。或者事件一个方法来设置一个带有删除标记的列。

通过SQLiteDatabase delete 或 executeSql 方法进行删除是否会使当前打开的游标保持有效,并且是否会从中删除已删除的行?

如果它变得无效,有什么建议不必继续重新查询数据库(或至少不必每次都重新编译语句)?

如果游标仍然有效但未更新,那么确保用户无法返回该行的最佳方法是什么?

这个问题有更好的解决方案吗?

4

2 回答 2

1

只需构建要删除的项目 ID 列表。用户操作完成后,您可以一步删除全部。

于 2012-07-13T10:26:44.877 回答
0

您可以使用 MatrixCursor 来执行此操作:

newCursor = new MatrixCursor(new String[] {col1, col2, col3}); // col names
    mCursor.moveToPosition(-1); // your Cursor
    while (mCursor.moveToNext()) {
        if (<any condition>) {
            newCursor.addRow(indicationNames.rows(mCursor));

        }

    }
    mCursor = newCursor ;

通过这种方式,您可以在不影响数据库的情况下更新光标。

于 2017-08-20T11:36:10.807 回答