是否可以(或推荐)通过
Android中的URI将参数传递给内容提供商,类似于网址如何使用它们?也就是说,我可以在content:// URIs中使用名称/值对吗?
例如,我有一个可以根据名称进行搜索的搜索提供程序.我传递了这样的URI:
内容://com.example.app/name/john
这会让任何名字中都有“约翰”的人回归,包括约翰,约翰逊,约翰逊等.
我希望有选项(但不是要求)来搜索确切的名称而不是找到部分匹配.我在考虑做这样的事情:
内容://com.example.app/name/john确切=真的吗?
这会告诉搜索提供程序只返回与“John”完全匹配的名称.但我还没有在Android中看到任何其他类似参数的例子.有没有更好的办法?我在这里错过了什么?
谢谢!
解决方法
如果要传递查询参数,可以在构造URI时使用appendQueryParameter()方法
LoaderFactory.createCursorLoader(this,MyProvider.MY_CONTENT_URI.buildUpon().appendQueryParameter( MyProvider.MY_PARAM_NAME,myParamValue).build(),projection,null,null);
然后使用getQueryParameter()访问param值
String paramValue = uri.getQueryParameter(MyProvider.MY_PARAM_NAME);