在android应用程序中从sqlite数据库中删除条目。从何处获取要传递给它的行id ot delete函数

在android应用程序中从sqlite数据库中删除条目。从何处获取要传递给它的行id ot delete函数,android,mysql,sqlite,delete-row,Android,Mysql,Sqlite,Delete Row,在浏览了很多帖子之后,我发布了我的查询。我的问题无法得到适当的解决 我正在使用sqlite并插入一些数据名、信息等 现在我得到所有行并显示在列表视图中 现在用户选择一个要删除的列表条目,我必须使用id调用db.delete,id是该特定记录的rowid 如何获取记录id 当用户从列表视图中选择时,我有一个位置号,它是列表的索引。但不是该条目所在的数据库行id 在创建行时,是否必须保存调用db.inserttable时返回的所有ID 所有示例都显示了如下实现 public void del

在浏览了很多帖子之后,我发布了我的查询。我的问题无法得到适当的解决

我正在使用sqlite并插入一些数据名、信息等

现在我得到所有行并显示在列表视图中

现在用户选择一个要删除的列表条目,我必须使用id调用db.delete,id是该特定记录的rowid

如何获取记录id

当用户从列表视图中选择时,我有一个位置号,它是列表的索引。但不是该条目所在的数据库行id

在创建行时,是否必须保存调用db.inserttable时返回的所有ID

所有示例都显示了如下实现

    public void deleteRow(long id) {

    db.delete(TABLE_NAME,KEY_ID + " = ?",
            new String[] { String.valueOf(id) });

    }

我应该从哪里获取id?

要设置列表视图,您已经创建了适配器,对吗

适配器保存您的条目并创建视图

询问适配器哪个项目位于位置x上

BaseAdapter实现一个getItemId方法

public long getItemId(int position) {

    // Example for List<Object>
    return mItems.get(position).getId();

}
您可以简单地调用adapter.getItemIdx;或者使用提供ID的McClickListener

有关更多信息,请访问android开发者页面

SimpleAdapter:

阵列适配器:

基本适配器:

我希望有帮助

更新:


使用getItemDint而不是getItemint,多亏了@pskink

,您只需跟踪列表中的哪一行是哪一行。不管怎样,您都是从数据库中获取数据。当您获取数据库内容时,您可以将行Id保存在objectsee中:onItemLongClick AdapterView父级、视图视图、整型位置、长Id onItemSelectedAdapterView父级、视图视图、整型位置、长Id和OnItemClick AdapterView父级、视图视图、整型位置、,长id您看到在所有情况下您都有位置和id吗?您指的是什么getId?是的,我使用带适配器的列表视图,我知道我得到了列表项的位置。假设用户长按位置2,我必须删除该位置表示的详细信息。但我不能使用位置号传递到db.delete来删除记录..对吗?因为将此条目插入数据库时,行id可能不同。所以我的对象的getId应该存储db.insert调用的返回值?为了使用它进行删除,getId来自记录对象。我认为他从数据库记录中创建了一个对象,并用ID保存数据。@Fabi755所以我的对象应该用返回值db.insert call设置ID?当用户从列表视图中选择“I have position number”作为列表的索引时,getId?@Sudarshansridhar也应该进一步使用它。你也有身份证,不仅仅是职位