在我的 Android 应用程序中,我将 SQLite 与内容提供程序一起使用。由于某些(后端)原因,我的表具有 _id 主键作为 VARCHAR。
问题是:
我需要使用带有附加 id 的内容 uri。在所有示例中,我看到带有 id 的内容 uri 看起来像
content://<autority>/<model_or_table>/<long_id>
并将 UriMatcher 添加为
UriMatcher.add(autority, model_or_id + "/#", uri_id)
当然,“/#”匹配 id 仅适用于数字。
我的问题是:
有什么方法可以使用带有附加字符串 id 的内容 uri?典型的 id 类似于
50c11d774e5e1b99698b6879
并且典型的内容 uri 必须为
content://com.my.app.autority/Users/50c11d774e5e1b99698b6879
以及如何使用这样的uri和UriMatcher?
我知道我可以编写选择指令 (WHERE _id = "50c11d774e5e1b99698b6879") 来查询方法,但我需要确切的 URI 或将唯一字符串 ID 投影到 SQLiteDB 中唯一长值的方法。
有什么办法吗?提前感谢)抱歉英语不好)
最佳答案
请参阅有关创建内容提供程序的文档 here .具体参见标题Content URI patterns
.正如您正确指出的 #
是一个通配符,它将匹配具有整数 ID 的单行。 *
通配符不会匹配具有非数字 ID 的单行。
据我所知,UriMatcher
在这种情况下,类不能帮助你。
另请参阅 UriMatcher
引用页here .
关于Android 内容 uri id 作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28511125/