SQLite数据库中的最后一条记录不会被删除

时间:2013-11-12 13:12:13

标签: android android-listview android-sqlite sql-delete

我有一个切换按钮,用于在检查时将数据保存到SQLite表,并在取消选中时从表中删除数据。我正在从同一个表中填充列表视图。因此,当我取消选中切换按钮时,我可以逐个删除记录,但最后一条记录除外,该记录显示在列表视图中。

但是当我检查切换按钮以插入新记录时,listview中的最后一条记录将替换为新记录。

以下是切换按钮代码

if(bookmark.isChecked()){
                // Insert record
                }
        }else{
                dbAdapter.write();
                dbAdapter.deleteSingleBookmark(urlHost1);
                dbAdapter.close();
               }

Sqlite代码

public boolean deleteSingleBookmark(String bookmarkHost2) throws SQLException{
    return (int) db.delete(BOOKMARKS_TABLE, BOOKMARK_NAME + "=?", new String[] { bookmarkHost2 }) > 0;
}

我在deleteSingleBookmark方法中尝试了“> = 0”,但这不起作用。我的问题类似于this,但我没有使用游标。

如何从列表视图中删除最后一条记录?

2 个答案:

答案 0 :(得分:1)

您需要使用为ListView提供的ListViewAdapter中的数据。 从适配器和调用方法中删除所需的数据:

yourAdapter.notifyDataSetChanged();

答案 1 :(得分:0)

public boolean deleteSingleBookmark(String bookmarkHost2) throws SQLException{
    return (int) db.delete(BOOKMARKS_TABLE, BOOKMARK_NAME + "="+bookmarkHost2, null) > 0;
}