从android应用程序中的sqlite数据库中删除条目。在哪里获取该行ID以通过删除功能

时间:2015-07-10 09:32:02

标签: android mysql sqlite delete-row

在浏览了很多帖子后,我发布了我的查询。无法正确解决我的问题。

我正在使用sqlite并插入一些数据(名称,信息等)。

现在我获取所有行并在列表视图中显示。

现在用户选择一个列表条目进行删除,我必须调用db.delete,其id为该特定记录的rowid。

如何获得记录ID?

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

在创建行时调用db.insert(table,data)时,是否必须保存返回的所有ID?

所有示例都显示了像

这样的实现
    public void deleteRow(long id) {

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

    }

我应该从哪里获取身份证?

1 个答案:

答案 0 :(得分:0)

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

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

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

BaseAdapter实现了一个getItemId方法。

public long getItemId(int position) {

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

}

您可以简单地致电adapter.getItemId(x);或使用提供ID的OnItemClickListener

在android开发者页面上获取更多信息。

SimpleAdapter: http://developer.android.com/reference/android/widget/SimpleAdapter.html

ArrayAdapter: http://developer.android.com/reference/android/widget/ArrayAdapter.html

BaseAdapter: http://developer.android.com/reference/android/widget/BaseAdapter.html

我希望它有所帮助。

已更新

感谢@pskink

,使用getItemId(int)代替getItem(int)