Android开发-API指南-

Android开发-API指南-<meta-data>

<meta-data>

英文原文:http://developer.android.com/guide/topics/manifest/meta-data-element.html
采集(更新)日期:2014-7-1
搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmuq.html

语法:
<meta-data android:name="string"
           android:resource="resource specification"
           android:value="string" />
包含于:
<activity>
<activity-alias>
<application>
<provider>
<receiver>
<service>
说明:
一个以键-值对表示的数据项,以供父组件作为附加数据使用,数据类型任意。 一个组件元素可以包含任意数量的 <meta-data> 子元素。 这些子元素的值存放在一个 Bundle 对象中,组件可以通过 PackageItemInfo.metaData 字段访问这些数据。

普通类型的值可以通过 value 属性来给定。 而资源 ID 的值则必须用 resource 属性来指定。 比如,以下代码把“zoo”的名称赋值为 @string/kangaroo 资源中存储的数据:

<meta-data android:name="zoo" android:value="@string/kangaroo" /> 

另一方面, 通过 Resource 属性将把“zoo”赋值为资源的 ID ,而不是资源中存储的数据:

<meta-data android:name="zoo" android:resource="@string/kangaroo" /> 

强烈建议不要使用多个独立的 <meta-data> 部分定义数据。 如果有比较复杂的数据需要和某个组件关联,请把它们作为资源存储,并用 resource 属性将资源 ID 告知组件。

属性:
android:name
数据项的唯一名称。 为了确保名称的唯一性,可使用 Java 风格的命名规则 — 如“com.example.project.activity.fred”。
android:resource
对某个资源的引用。赋值为资源 ID 。 通过 Bundle.getInt() 方法可以从 meta-data Bundle 中读取该资源 ID。
android:value
赋给数据项的值。 下表列出了可赋予的数据类型、组件用 Bundle 对象获取该类值的方法:
类型 Bundle 方法
字符串值,双反斜杠(\\)作为转义字符 — 比如“\\n”、“\\uxxxxx”表示 Unicode 字符 getString()
整数值,比如“100 getInt()
布尔型值,“true”或“false getBoolean()
颜色值,格式为“#rgb”、“#argb”、“#rrggbb”或“#aarrggbb getInt()
浮点型值,比如“1.23 getFloat()
引入自:
API 级别 1