在android中许多数据是通过url进行描述的。
URI代表了要操作的数据,一般包含两方面的信息
1 主机名 公司名称。内容提供者。实现类Xxx提供者
Content://Cn.itcast.provider.xxx
2 我们要对内容提供者的哪个内容进行操作,通过路径部分标示出来
Scheme 例如 content:// http: 结构
是由内容提供者提供的
外部用户要通过contentProvider来找到要操作的数据,
要操作person表中id为10的记录,我们可以用/person/10 来表示
要是想进一步操作id为10的name记录 /person/10/name
要操作person中的所有数据 /person
要操作xxx中的所有数据 /xxx
要操作的不一定是数据库的,也可以使XML文件中的
Person节点下的name节点
/person/name
如果要转换URI Uri uri = Uri.parse(“……”);
UriMatcher类
这个类能帮助我们匹配URI地址,使用起来时这样的
首先我们要把这个类实例化
UriMatcher sMacher = new UriMatcher(UriMatcher.ON_MATCH); 实例化的时候传入的参数表示,如果没有匹配到URI,就返回-1,那个参数常量就表示-1。
第二部 把要匹配的内容加入进去
sMatcher.addURI(“主机名”,”路径”,返回值);
路径后面也可以使用#作为通配符
第三部 用一个switch语句进行判断
Switch(sMatch.match(URI.parse“要匹配的URI”)){
Case 1:
Break;
Case 2;
Break
Default://不匹配
Break;
}
ContentUris类
这个类也是比较有用的方法,可以获取或者追加路径上的ID部分
ContentUris.withAppendedld(uri,10);这样的话就在uri后面追加了id为10
Content://cn.itcast.provider.personprovider/person/10
如果想获取后面的id,就是用ContentUris.parseId(uri),这样就能返回一个ID