2012-07-13 75 views
1

我在Android中創建了一個程序,在我打算重複思考數據庫中的行的一個屏幕上,向用戶顯示每一行,並讓他跳過或刪除它。Android用光標刪除行

在Java中,我可以用戶的ResultSetdeleteRow()方法,但是Android系統目前還沒有等效方法。或事件設置帶有刪除標記的列的方法。

將刪除通過SQLiteDatabase刪除或executeSql方法將當前打開的光標保持有效,將被刪除的行將被刪除嗎?

如果它變得無效,那麼建議不必重新查詢數據庫(或者至少不要每次重新編譯語句)?

如果遊標仍然有效但沒有更新,將是確保用戶無法返回到此行的最佳方法?

有沒有更好的解決方案來解決這個問題?

+0

發佈您嘗試過的一些代碼。當你定義你的sql helper和sql adapter時,真的很容易刪除它。問候 – 2015-08-22 22:20:59

回答

1

只需構建一個要刪除的項目ID列表。一旦用戶操作完成,您可以在一個步驟中刪除它們中的大部分。

+0

什麼是最好的方式來存儲ID,這樣如果有電源故障,我可以在下次啓動程序時進行刪除操作? – bsagal 2012-07-13 10:33:16

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 ; 

通過這種方式,你必須在不影響數據庫光標更新。