UriMatcher類使用介紹

因爲Uri代表了要操作的數據,所以我們經常需要解析Uri,並從Uri中獲取數據。Android系統提供了兩個用於操作Uri的工具類,分別爲UriMatcher 和ContentUris 。掌握它們的使用,會便於我們的開發工作。

UriMatcher類用於匹配Uri,它的用法如下:

首先第一步把你需要匹配Uri路徑全部給註冊上,如下:
//常量UriMatcher.NO_MATCH表示不匹配任何路徑的返回碼
UriMatcher  sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
//如果match()方法匹配content://cn.itcast.provider.personprovider/person路徑,返回匹配碼爲1

sMatcher.addURI(“cn.itcast.provider.personprovider”, “person”, 1);//添加需要匹配uri,如果匹配就會返回匹配碼
//如果match()方法匹配content://cn.itcast.provider.personprovider/person/230路徑,返回匹配碼爲2
sMatcher.addURI(“cn.itcast.provider.personprovider”, “person/#”, 2);//#號爲通配符
switch (sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10"))) { 

   case 1
    break;
   case 2
    break;
   default://不匹配
    break;
}

註冊完需要匹配的Uri後,就可以使用sMatcher.match(uri)方法對輸入的Uri進行匹配,如果匹配就返回匹配碼,匹配碼是調用addURI()方法傳入的第三個參數,假設匹配content://cn.itcast.provider.personprovider/person路徑,返回的匹配碼爲1


ContentUris類用於獲取Uri路徑後面的ID部分,它有兩個比較實用的方法:
withAppendedId(uri, id)用於爲路徑加上ID部分:

Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person")
Uri resultUri = ContentUris.withAppendedId(uri, 10); 
//生成後的Uri爲:content://cn.itcast.provider.personprovider/person/10

parseId(uri)方法用於從路徑中獲取ID部分:
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10")
long personid = ContentUris.parseId(uri);//獲取的結果爲:10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章