ContentUris类用于获取Uri路径后面的ID部分,它有两个比较实用的方法:
Uri resultUri = ContentUris.withAppendedId(uri, 10);
//生成后的Uri为:content://cn.itcast.provider.personprovider/person/10
方法2:parseId(uri)方法用于从路径中获取ID部分:
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10")
方法1:withAppendedId(uri, id)用于为路径加上ID部分:
//两个代码生成的uri相同只是用的方法不一样,用来比较
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person"+10)Uri resultUri = ContentUris.withAppendedId(uri, 10);
//生成后的Uri为:content://cn.itcast.provider.personprovider/person/10
方法2:parseId(uri)方法用于从路径中获取ID部分:
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10")
long personid = ContentUris.parseId(uri);//获取的结果为:10
----------------------------------------华丽的分割线--------------------------------------
对《Android使用内容提供者方式进行存储》这片文章进行补充,文章未实现 getType()函数,在此实现一下
//该方法用于返回当前Url所代表数据的MIME类型
@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
switch (matcher.match(uri)) {
case 1:
return "vnd.android.cursor.dir/person";
//操作的数据属于集合类型,如content://cn.itcast.provider.personprovider/person
case 2:
return "vnd.android.cursor.item/person";
//操作的数据属于非集合类型数据,如content://cn.itcast.provider.personprovider/person/10
default:
throw new IllegalAccessError("uri错误");
}
}