代碼提取
上面我們通過實例講解了肉眼識別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
另外還有兩個常用的:getPathSegments()、getQueryParameter(String key)
List< String> getPathSegments():上面我們的getPath()是把path部分整個獲取下來:/yourpath/fileName.htm,getPathSegments()的作用就是依次提取出Path的各個部分的字符串,以字符串數組的形式輸出。以上面的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);
}
打出來的列表為:
getQueryParameter(String key):在上面我們通過getQuery()獲取整個query字段:stove=10&path=32&id=4,getQueryParameter(String key)作用就是通過傳進去path中某個Key的字符串,返回他對應的值。
[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"));
網址:http://blog.csdn.net/harvic880925/article/details/44679239