代碼提取
上面我們通過(guò)實(shí)例講解了肉眼識(shí)別Uri更部分的方式,但在代碼中又要怎樣提取呢。下面就看看Uri中提取各部分的接口,依然以上面的Uri字符串為例:
[java]view plaincopy
http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic
getScheme() :獲取Uri中的scheme字符串部分,在這里即,http
getSchemeSpecificPart():獲取Uri中的scheme-specific-part:部分,這里是://www.java2s.com:8080/yourpath/fileName.htm?
getFragment():獲取Uri中的Fragment部分,即harvic
getAuthority():獲取Uri中Authority部分,即www.java2s.com:8080
getPath():獲取Uri中path部分,即/yourpath/fileName.htm
getQuery():獲取Uri中的query部分,即stove=10&path=32&id=4
getHost():獲取Authority中的Host字符串,即www.java2s.com
getPost():獲取Authority中的Port字符串,即8080
另外還有兩個(gè)常用的:getPathSegments()、getQueryParameter(String key)
List< String> getPathSegments():上面我們的getPath()是把path部分整個(gè)獲取下來(lái):/yourpath/fileName.htm,getPathSegments()的作用就是依次提取出Path的各個(gè)部分的字符串,以字符串?dāng)?shù)組的形式輸出。以上面的Uri為例:
[java]view plaincopy
String?mUriStr?="http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic";
Uri?mUri?=?Uri.parse(mUriStr);
List?pathSegList?=?mUri.getPathSegments();
for(String?pathItem:pathSegList){
Log.d("qijian","pathSegItem:"+pathItem);
}
打出來(lái)的列表為:
getQueryParameter(String key):在上面我們通過(guò)getQuery()獲取整個(gè)query字段:stove=10&path=32&id=4,getQueryParameter(String key)作用就是通過(guò)傳進(jìn)去path中某個(gè)Key的字符串,返回他對(duì)應(yīng)的值。
[java]view plaincopy
String?mUriStr?="http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id#harvic";
mUri?=?Uri.parse(mUriStr);
Log.d(tag,"getQueryParameter(\"stove\"):"+mUri.getQueryParameter("stove"));
Log.d(tag,"getQueryParameter(\"id\"):"+mUri.getQueryParameter("id"));
網(wǎng)址:http://blog.csdn.net/harvic880925/article/details/44679239