0

所以我有一个带有该方法的数据库:

public boolean deleteContact(long rowId) {
    return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}

我对如何使用它有一个大致的了解,但它只是不删除项目。我不知道如何找出项目所在的行。这是其中包含数据库的列表视图,带有 on select 事件:

private void Items() {
    AlertDialog.Builder dlgAlert = new AlertDialog.Builder(ItemsList.this);
    dlgAlert.setTitle("Something Here");
    dlgAlert.setMessage("What would you like to do?");
    dlgAlert.setPositiveButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
    dlgAlert.setNegativeButton("Delete",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

//This is where it should be finding what row the item is in and deleting it...

                }
            });
    dlgAlert.setCancelable(true);
    dlgAlert.create().show();
}
4

2 回答 2

0

尝试这个:

在您的数据库中,当您保存任何项目时,您可能已经分配了一些唯一标识符,例如 _id 或 Item_no 或类似的东西。

因此,当您在光标中获取数据并在自定义适配器中的 GetView 方法中将自定义适配器分配给列表时,您可以获得该唯一标识符的值。设置标签后用你的身份证号查看。这样当您单击列表中的任何视图时,您将获得其标记值。并像这样将它传递给您的方法项(字符串标记)。并且当单击警报按钮时,您可以调用与方法中给定标识符匹配的数据库删除方法。这样它就可以准确地删除该记录。

希望能帮助到你!!

于 2013-07-30T05:05:23.927 回答
0

我假设您已使用适配器来填充列表视图。通常在处理 android 数据库时,我们必须提供一个自动增量列 _id。您可以使用参数“int which”来获取被点击的条目。int 参数将等于 _id(您的数据库的自动增量列)让您的数据库到一个游标,将您的游标移动到“哪个”并相应地删除该项目。

于 2013-07-30T04:10:49.260 回答