34

当您将新项目插入这样的数据库时

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

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

4

4 回答 4

69

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

于 2012-07-14T23:13:03.750 回答
12
long id = Long.valueOf(uri.getLastPathSegment());
于 2012-07-14T23:18:48.370 回答
1

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

在此处阅读文档

于 2016-06-29T11:03:57.690 回答
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());
于 2018-01-09T10:13:45.983 回答