我传递一个 Uri.Builder 对象作为子类的机制,以便在执行之前将任何必要的参数填充到 Uri 中Android.
问题是,基类添加的参数之一使用builder.appendQueryParameter("q",searchPhrase);
需要在子类中替换,但是我只能找到appendQueryParameter()
,没有替换或设置方法。appendQueryParameter()
使用相同的参数名称添加该参数的另一个实例,但不会替换它。
我应该放弃并尝试其他方法吗?或者有没有办法替换我还没有找到的查询参数?
由于没有内置方法,我发现最好的方法是构建一个新的 Uri。您迭代旧 Uri 的所有查询参数,然后用新值替换所需的键。
private static Uri replaceUriParameter(Uri uri, String key, String newValue) {
final Set<String> params = uri.getQueryParameterNames();
final Uri.Builder newUri = uri.buildUpon().clearQuery();
for (String param : params) {
newUri.appendQueryParameter(param,
param.equals(key) ? newValue : uri.getQueryParameter(param));
}
return newUri.build();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)