从返回的Uri获取插入数据库的新记录的ID

时间:2012-07-14 23:01:05

标签: android android-sqlite

将新项目插入数据库时​​

Uri uri = getContentResolver().insert(Tournaments.CONTENT_URI, values); 

有没有办法从返回的uri中获取id,所以我不必运行查询来获取id,因为它已经在返回的uri中了?

4 个答案:

答案 0 :(得分:64)

ContentUris.parseId()将最后一个路径段转换为long。

答案 1 :(得分:12)

long id = Long.valueOf(uri.getLastPathSegment());

答案 2 :(得分:1)

使用ContentUris.parseId(uri) 此语句将最后一个路径段转换为long。

阅读here

中的文档

答案 3 :(得分:0)

long rowId = Long.valueOf(uri.getLastPathSegment());

以上是正确的。但我所做的是,我通过了像Events.CONTENT_URI.getLastPathSegment()那样的uri,它没有给出id。因为我们必须传递insert()返回的URI,如下所示。可能对像我这样的人有帮助!

Uri uri = getContentResolver().insert(Events.CONTENT_URI, values); 
long rowId = Long.valueOf(uri.getLastPathSegment());