- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ConentProvider 并使用 UriMatcher 来执行适当的SQL 语句。
代码有效,但我不喜欢从中提取参数的方式uri 的:
这是失败的:
String badge_id = uri.getQueryParameter("id");
String badge_value = uri.getQueryParameter("badge");
,而且会很理想。
获取参数的正确/最佳方式是什么?我的 uri 匹配器在工作吗?
电话:
Uri uri = Uri.parse("content://" + USERSSchema.AUTHORITY
+ "/" + USERSSchema.USERSTable.TABLE_USERS + "/id/" + String.valueOf(badgeId) + "/badge/" + String.valueOf(badgeValue));
getApplication().getApplicationContext().getContentResolver().update(uri,null,null,null);
接收者:
private static final int USERS_UPDATE_ORDER_BY_ID = 1;
private static final int USERS_CHANGE_ORDER_BY_ORDER = 2;
private static final int USERS_CHANGE_BADGE = 3;
uriMatcher.addURI(USERSSchema.AUTHORITY,USERSSchema.USERSTable.TABLE_USERS
+ "/from_id/#/to_id/#", USERS_UPDATE_ORDER_BY_ID);
uriMatcher.addURI(USERSSchema.AUTHORITY,USERSSchema.USERSTable.TABLE_USERS
+ "/from_order/#/to_order/#", USERS_CHANGE_ORDER_BY_ORDER);
uriMatcher.addURI(USERSSchema.AUTHORITY,USERSSchema.USERSTable.TABLE_USERS
+ "/id/#/badge/#", USERS_CHANGE_BADGE);
@Override
public int update(Uri uri, ContentValues contentValues, String selection, String[] selectionArgs) {
switch (uriMatcher.match(uri)) {
case USERS_UPDATE_ORDER_BY_ID :
// ....
break:
case USERS_CHANGE_ORDER_BY_ORDER:
// ....
break;
case USERS_CHANGE_BADGE :
String badge_id = uri.getQueryParameter("id");
String badge_value = uri.getQueryParameter("badge");
**//WHAT IS THE BETTER WAY?**
int badge_segment = 0;
for (String segment : uri.getPathSegments()) {
switch (badge_segment++) {
case 2 :
badge_id = segment;
break;
case 4 :
badge_value = segment;
break;
}
}
break;
最佳答案
看起来您混淆了传统意义上的查询参数,以及像 Symfony 这样的框架处理它们的方式。
Uri.getQueryParameter 查找查询字符串 (content://demo?key=value)。要从路径内部获取参数,请使用 Uri.getPathSegments()。
关于android - 将 UriMatcher 与 ConentProvider 一起使用时如何解析查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30935903/
我有两个 Uris。假设他们是: content://myprovider/messages content://myprovider/messages/# 在我的扩展 ContentProvider
首先:我已经筛选了很多关于 SO 主题的问题,但仍然没有找到正确的答案。 这是我的代码的一个(简化的)版本: private static UriMatcher uriMatcher
我正在为 Android 应用程序创建内容提供程序,但我在使用 UriMatacher 正确匹配 uri 时遇到问题。 . 例如,我添加 uri 以匹配(从链接中截取) sURIMatcher.add
我有一个 ContentProvider,我需要匹配一些包含 UUID 作为通配符的 URI。 来自 ContentProvider 的 UriMatcher: public static final
UriMatcher(int code) 构造函数中的代码参数根据 Android Developer Document用于“匹配根 URI”,代码通常为 NO_MATCH其值等于 -1 我不清楚这个
这很有效!我不确定发生了什么变化。我确实使用 git,现在我已经检查了我的提交和代码几个小时。 如标题所示,我的 uri 匹配器已停止匹配。 下面我粘贴了我的内容提供者的相关部分。 public cl
我有这个 URI content://com.mycompany.data/routes?group=M01&office=BOCE&zone=EC01 还有这条规则 sUriMatcher.addU
我是 Android 新手。我浏览了 Android ContentProvider 的代码,我对 UriMatcher 有点困惑,因为 static 中的语句将首先执行。在 UriMatcher 内
我对内容提供者有疑问。 每次我编写内容提供程序时,我都会将 URI MATCHER 定义放在静态括号中,但 URI MATCHER 被声明为该类的私有(private)数据成员。只有 definiti
我正在尝试为搜索对话框提供自定义建议。我正在使用 urimatcher 来匹配 uri。但它不起作用。我总是得到异常“java.lang.IllegalArgumentException: Unkno
我想使用 UriMatcher匹配自定义 http 链接。 我有以下代码: UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
我有一个为 ShareActionProvider 执行后台处理的自定义 ContentProvider。提供的 Uri 路径是完整的文件路径(例如:/mnt/sdcard/my.file)。 uri
我正在尝试根据几个示例实现我自己的 ContentProvider,但我对 UriMAtcher 中的不同方法感到困惑。例如: JavaDoc用 # 显示它,如下所示: sURIMatcher.add
我的任务是设计我的 Web 服务客户端代码以使用 Android SDK 中的实用程序类 UriMatcher。不幸的是,开发指南中的示例与我的想法无关。我知道我遗漏了一些关于功能的基本要点,可能还有
android.content.UriMatcher中的Uri Matcher是什么 如何使用它?有人可以解释一下以下三行代码的含义吗? uriMatcher = new UriMatcher(U
在对我之前的问题的回答中,有人指出 Android 类 UriMatcher 中存在一些固有缺陷(因为没有更好的词)。任何人都可以查明 UriMatcher 的已知问题吗?我正在设计一个依赖 UriM
我有一个 ConentProvider 并使用 UriMatcher 来执行适当的SQL 语句。 代码有效,但我不喜欢从中提取参数的方式uri 的: 这是失败的: String badge_id =
我看到的关于如何制作 ContentProvider 的示例都用过UriMatcher#match(Uri) insert、query、update 和 delete 方法中的方法可以轻松处理所有 U
我是一名优秀的程序员,十分优秀!