UriMatcher和ContentUris
Contents
Android提供了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris 。
UriMatcher类
用于匹配Uri,它的用法如下
- 首先第一步注册需要匹配Uri路径:
eg.
1 | //常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码 |
- 注册完需要匹配的Uri后,就可以使用sMatcher.match(uri)方法对输入的Uri进行匹配
如果匹配就返回匹配码,匹配码是调用addURI()方法传入的第三个参数,可以针对各个匹配码进行switch-case操作:1
2
3
4
5
6
7
8
9
10switch (sMatcher.match(Uri.parse( "content://net.yrom.provider.noteprovider/note/10"))) {
case 1:
//匹配1的操作
break;
case 2:
//匹配2的操作
break;
default: //不匹配
break;
}
ContentUris类
用于处理Uri路径后面的ID部分
方法withAppendedId(uri, id)用于为路径加上ID部分:
1
2Uri uri1 = Uri.parse("content://net.yrom.provider.noteprovider/note");
Uri resultUri = ContentUris.withAppendedId (uri1, 10);生成后的Uri为:
content://net.yrom.provider.noteprovider/note/10
方法parseId(uri)方法用于从路径中获取ID部分:
1
2Uri uri2 = Uri.parse("content://net.yrom.provider.noteprovider/note/10");
long personid = ContentUris.parseId(uri2);获取的结果为:10