在平時我們開發應用的過程中,我們可能需要設定一些動態變數值隨著我們版本的變化一起變化 。在這種情況下,一般我們首先想到的辦法可能就是我們申明乙個靜態的變數,然後在我們的應用中直接使用就行了,以後如果需要修改的時候,我們再找到這個類裡面的定義的地方,再重新賦值即可。。。
當然,我們也可以通過在menifest裡面的meta-data標籤來定義乙個值,然後在我們的應用中直接去讀取即可,這樣,下次如果需要修改值,我們就不必再找到我們的**了,而是在修改我們的版本號的時候,一起就可以修改了。更加方便與便捷。
那麼我們的自己應用裡面應該如何去定義meta-data的值呢?並且怎麼在**中取出我們要想的值 呢?
形如:
我們分別來看看如何獲取的吧?>
android:value
="12345"
android:name
=/>
...>
android:name
="data_name"
android:value
="hello my activity"
>
形如:
**:>
android:value
="my_data"
android:name
="data_name"
/>
2.獲取 activity標籤中的meta-data:=context
.getpackagemanager().
(context
.getpackagename
(),packagemanager
.get_meta_data
);string
dataname=.
metadata
.getstring
("data_name"
);
形如:
**:...>
android:value
="my_activity"
android:name
="data_name"
/>
注意:activity.getcomponentname()為獲取activity例項的componentname 也可以用下面的代替:activityinfo
activityinfo
=context
.getpackagemanager().
getactivityinfo
(activity
.getcomponentname
(),packagemanager
.get_meta_data
);string
dataname
=activityinfo
.metadata
.getstring
("data_name"
);
//通過指定乙個activity類來生成乙個新的componentname3.獲取 service標籤中的meta-data:componentname
componentname
=new
componentname
(context
,splashactivity
.class
);
形如:
< service ...>**:android:value
="my_service"
android:name
="data_name"
/>
>
注意:在service裡面就沒有getcomponentname()方法來快速獲取到當前的componentname了,所以只能通過指定service類的方式來生成乙個新的componentnamecomponentname
componentname
=new
componentname
(context
,myservice
.class
);serviceinfo
serviceinfo
=context
.getpackagemanager().
getserviceinfo
(componentname
,packagemanager
.get_meta_data
);string
dataname
=serviceinfo
.metadata
.getstring
("data_name"
);
4.獲取 receiver標籤中的meta-data:
形如:
< receiver ...>**:android:value
="my_receiver"
android:name
="data_name"
/>
>
注意:在receiver可沒有 receiverinfo了,而是用的activityinfo來處理的。componentname
componentname
=new
componentname
(context
,myservice
.class
);activityinfo
activityinfo
=context
.getpackagemanager().
getreceiverinfo
(componentname
,packagemanager
.get_meta_data
);string
dataname
=activityinfo
.metadata
.getstring
("data_name"
);
最後的注意:我們在獲取值的時候都是使用的是:***info.metadata.getstring(「data_name」);把所有的值都當成是string來獲取的,如果在meta-data中是int型的,如果還是使用getstring()方法獲取出來的值是為空的,但是metadata提供了這麼多種get方法來獲取 。
如果metadata 的資料型別是沒辦法確定的,那麼可以直接使用 object object = metadata.get(key)來獲取 ,然後再轉化成自己要想的資料型別。
Jsoup獲取xml中標籤
jsoup對於處理html.xml很強大.這裡主要記錄如何獲取一篇xml中的某個節點 這裡封裝的工具類,和我上篇帖子一樣.依賴 com.thoughtworks.xstreamgroupid xstreamartifactid 1.4.9version dependency org.jsoupgro...
在dom中獲取html中標籤
獲取元素的三種方法 1 通過id名獲取元素 2 通過class類名獲取元素 3 通過標籤名直接獲取元素 注 id是唯一的 所以用id獲取到的元素可以直接用,通過class類名和標籤名獲取到的元素是乙個陣列,呼叫的時候需要先獲取到具體的某乙個,然後再呼叫。下面是乙個簡單的案例 通過標籤查詢並獲取標籤 ...
中 標籤 HTML中的標籤
講一下html中檔案標籤和文字標籤的使用 目的是學會使用,所以借助工具可以省好多時間 1.檔案標籤 構成html最基本的標籤 html html文件的根標籤 head 頭標籤。用於引入html文件的一些屬性。引入外部的一些資源 title 標題標籤 body 體標籤 html5中定義該文件是html...