在浏览了很多帖子后,我发布了我的查询。无法正确解决我的问题。
我正在使用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) });
}
我应该从哪里获取身份证?
答案 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)