方法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錯誤");
}
}