gpt4 book ai didi

java - 从 ListView 和数据库中删除项目

转载 作者:行者123 更新时间:2023-12-01 11:27:43 24 4
gpt4 key购买 nike

我有一个 ListView ,其中包含用户数据的列表。当我长按 ListView 项目时,我希望删除该项目。我已经拥有它,因此该项目看起来像是已删除,但是当我返回并刷新页面或稍后重新打开页面时,数据仍然存在。我知道这是因为数据库中的项目没有被删除 - 只有 ListView 中的项目被删除。我也不知道如何删除数据库对象,我通过查看以前的线程尝试了几种不同的方法,但它们似乎不起作用。

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener()   {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, final long id) {

AlertDialog.Builder adb = new AlertDialog.Builder(PreviousPractices.this);
adb.setTitle("Delete?");
adb.setMessage("Delete this?");
final int positionToRemove = position;
adb.setNegativeButton("Cancel", null);
adb.setPositiveButton("Yes", new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
db.remove(id);
ArrayOfPractices.remove(positionToRemove);
adapter.notifyDataSetChanged();
}
});
adb.show();
return false;

}
});

这是我尝试的第一种方法。我在数据库类中的删除方法是:

public void remove(long id){
SQLiteDatabase db = this.getWritableDatabase();
String string =String.valueOf(id);
db.delete(DATABASE_TABLE, KEY_ID + " = " + id, null);
}

我尝试的第二种方法是使用此方法:

public void deletePractice(Practice practice) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(DATABASE_TABLE, KEY_ID + " = ?",
new String[]{String.valueOf(practice.getID())});
db.close();
}

然后通过以下方式调用它:

public void onClick(DialogInterface dialog, int which) {
db.deletePractice(pList.get(position));
ArrayOfPractices.remove(positionToRemove);
adapter.notifyDataSetChanged();
}

最佳答案

您的代码 db.delete(DATABASE_TABLE, KEY_ID + "= "+ id, null); 没问题。

但是为了调试,请执行此操作,并通知我们。

int rowsDeleted = db.delete(DATABASE_TABLE, KEY_ID + " = " + id, null);
Log.d(TAG, "Deleted rows = " + rowsDeleted);

基本上告诉我们受影响的行数。我怀疑 0 行,如果是这样,那么 DATABASE_TABLE 是错误的,或者变量 id 不是 ID 的正确值。

关于java - 从 ListView 和数据库中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30688501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com