【发布时间】:2018-01-09 18:13:45
【问题描述】:
当您像这样将新项目插入数据库时
Uri uri = getContentResolver().insert(Tournaments.CONTENT_URI, values);
有什么方法可以从返回的 uri 中获取 id,这样我就不必运行查询来获取 id,因为它已经在返回的 uri 中?
【问题讨论】:
当您像这样将新项目插入数据库时
Uri uri = getContentResolver().insert(Tournaments.CONTENT_URI, values);
有什么方法可以从返回的 uri 中获取 id,这样我就不必运行查询来获取 id,因为它已经在返回的 uri 中?
【问题讨论】:
ContentUris.parseId() 将最后一个路径段转换为长路径。
【讨论】:
long id = Long.valueOf(uri.getLastPathSegment());
【讨论】:
使用 ContentUris.parseId(uri) 该语句会将最后一个路径段转换为长路径。
阅读here中的文档
【讨论】:
long rowId = Long.valueOf(uri.getLastPathSegment());
以上是正确的。但我所做的是,我传递了像 Events.CONTENT_URI.getLastPathSegment() 这样没有给出 id 的 uri。因为我们必须传递由 insert() 返回的 URI,如下所示。可能对像我这样的人有帮助!
Uri uri = getContentResolver().insert(Events.CONTENT_URI, values);
long rowId = Long.valueOf(uri.getLastPathSegment());
【讨论】: