android – 一旦你拥有行uri,从内容提供者那里获取数据的正确方法是什么?

android – 一旦你拥有行uri,从内容提供者那里获取数据的正确方法是什么?,第1张

概述我想知道在我已经知道行uri的情况下是否有可能直接在游标(或其他容器)中获取内容提供者行中存在的数据(换句话说,我已经拥有了ContentURI和附加行ID). 插入或内容观察器OnChange(在android api 16上)都给了我回插入/更改的URI,我希望有效地从该行获取数据(没有很多查询或指令).但是,我发现的唯一方法是从URI解析ID,使用该id的selection子句构建一个查询, 我想知道在我已经知道行uri的情况下是否有可能直接在游标(或其他容器)中获取内容提供者行中存在的数据(换句话说,我已经拥有了ContentURI和附加行ID).

插入或内容观察器OnChange(在android API 16上)都给了我回插入/更改的URI,我希望有效地从该行获取数据(没有很多查询或指令).但是,我发现的唯一方法是从URI解析ID,使用该ID的selection子句构建一个查询,然后获取游标,如下所示:

long row = ContentUris.parseID(uri);     String mSelectionClause = ContentProvIDer.table._ID + " = ?";     String[] mSelectionArgs = {Long.toString(row)};     Uri other_uri = Uri.parse(ContentProvIDer.AUTHORITY_STRING + ContentProvIDer.UriPathIndex.table);     Cursor cursor = cr.query(other_uri,null,mSelectionClause,mSelectionArgs,null);

还有其他方法吗?我想知道是否可以直接使用行uri

解决方法@H_301_19@ 引自 http://developer.android.com/guide/topics/providers/content-provider-basics.html#ContentURIs

许多提供程序允许您通过将ID值附加到URI的末尾来访问表中的单个行.例如,要从用户词典中检索_ID为4的行,您可以使用此内容URI:

Uri singleUri = ContentUris.withAppendedID(UserDictionary.Words.CONTENT_URI,4);

编辑(来自评论):它适用于所有标准化内容提供商(至少由Google提供).它适用于所有内容提供商,这些提供商遵循基于行的数据存储备份的内容提供商的设计准则.

总结

以上是内存溢出为你收集整理的android – 一旦你拥有行uri,从内容提供者那里获取数据的正确方法是什么?全部内容,希望文章能够帮你解决android – 一旦你拥有行uri,从内容提供者那里获取数据的正确方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1129124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存