`
亚当爱上java
  • 浏览: 706094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android meta-data 使用详解

阅读更多
<meta-data android:name="string"

           android:resource="resource specification"

           android:value="string" />

这是该元素的基本结构.可以包含在

<activity> <activity-alias> <service> <receiver>四个元素中。

这个名字值是额外的任意的可以提供给父组件的数据。一个组件元素能够包含任意数量的meta-data子元素。它们所有的值都会被收集在Bundle对象中并且使其可以作为组件的 PackageItemInfo.metaData 字段。

  一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。例如:下面的代码就是指定存储在@string/kangaroo 资源中的zoo名字。

       <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。该id可以通过方法Bundle.getInt()来从meta-data中找到。

android:value

指定给这一项的值。可以作为值来指定的数据类型并且组件用来找回那些值的Bundle方法列在了下面的表中。


Type                                                               Bundle method

String value, using double backslashes (\\) to                getString()
escape characters — such as"\\n" and "\\uxxxxx"
for a Unicode character.

Integer value, such as "100"                                    getInt()

Boolean value, either "true" or "false"                    getBoolean()

Color value, in the form "#rgb", "#argb",                     getString()
"#rrggbb", or "#aarrggbb"

Float value, such as "1.23"                                   getFloat()


获得a meta-data 的值:

     <meta-data android:name="foo" android:value="@string/app_name"/>

ActivityInfo ai = activity.getPackageManager().getActivityInfo(componentName, PackageManager.GET_META_DATA);    
String foo = ai.metaData.getString("foo"); 
Toast.makeText(this, "meta:"+foo, 1).show();  


参考:http://androidappdocs.appspot.com/guide/topics/manifest/meta-data-element.html
分享到:
评论

相关推荐

    Recovery模式详解

    在 Recovery 模式中, Android 系统会使用到多个模块,包括 framework/base/core 层、framework jni 层和 recovery 系统层。这些模块都是 Recovery 模式的核心组件,负责实现 Recovery 模式的各种功能。 framework/...

    Android代码-屏保源码.zip

    【Android屏保开发详解】 Android系统作为全球最受欢迎的智能手机操作系统之一,其丰富的定制性和开放性为开发者提供了广阔的空间。在Android中,屏保(Live Wallpaper)是一种动态壁纸,它可以为用户的手机桌面...

    AndroidManifest.xml文件详解

    ### AndroidManifest.xml 文件详解 #### 一、关于 AndroidManifest.xml `AndroidManifest.xml` 是 Android 应用程序中不可或缺的一部分,通常位于项目的根目录下。该文件定义了应用程序的架构和元数据,包括应用...

    Android ActionBar搜索功能用法详解

    2. 同时,该Component的meta-data必须包含`android:name="android.app.searchable"`和指向`searchable` XML资源的`android:resource`。 在实现搜索功能时,还需要考虑如何处理搜索请求、展示搜索结果,以及如何在...

    com.android.vend.zip

    &lt;meta-data android:name="com.android.vending.expansion.zip_file" android:value="@raw/main" /&gt; &lt;meta-data android:name="com.android.vending.expansion.patch_file" android:value="@raw/patch" /&gt; ... ...

    Android开发百度地图详解

    4. 在同一文件中,还需添加百度地图服务的meta-data标签,放入之前获取的API密钥: ```xml &lt;meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="你的API密钥"/&gt; ``` 5. 创建地图Fragment或...

    学习笔记之AndroidManifest.xml文件解析.docx

    * `&lt;meta-data&gt;`:定义了广播接收器的元数据。 ### `&lt;provider&gt;` 节点 * `&lt;grant-uri-permission&gt;`:定义了内容提供者的 uri 权限。 * `&lt;meta-data&gt;`:定义了内容提供者的元数据。 三、AndroidManifest.xml 文件...

    基于Android FileProvider 属性配置详解及FileProvider多节点问题

    基于Android FileProvider 属性配置详解及FileProvider多节点问题 Android FileProvider 是 Android 7.0 及更高版本中用于文件共享的组件,主要用于解决 Android 7.0 及更高版本中私有存储的限制问题。在 Android ...

    Android沉浸模式详解Demo

    &lt;meta-data android:name="android.window.statusBarColor" android:resource="@color/colorStatusBar" /&gt; ``` 或者 ```java // Java代码设置 Window window = getWindow(); window.addFlags(WindowManager...

    Xposed从入门到弃坑1

    【Xposed框架详解】 Xposed框架是Android平台上的一款极具影响力和功能强大的系统级插件框架。它允许开发者在不修改应用程序APK的情况下,通过编写模块来影响程序运行的行为,实现对系统层面的功能扩展和定制。...

    屏幕适配配置

    ### 屏幕适配配置详解 #### 一、引言 在移动应用开发过程中,屏幕适配是一项重要的技术。为了确保应用能够在不同尺寸、不同分辨率的设备上保持良好的视觉效果和用户体验,开发者需要掌握一系列适配策略和技术。...

    为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解

    &lt;meta-data android:name="CHANNEL" android:value="C_001" /&gt; ``` - **自定义渠道编号**:每个渠道对应一个独特的值,如`C_001`,`C_002`等。 3. **程序如何读取渠道编号**: - 在代码中,可以通过`...

    android 高德地图 demo

    **Android高德地图Demo详解** 高德地图API是Android开发者常用的一款地图服务,它提供了丰富的地图展示、定位、路径规划等功能。在这个项目中,我们将会深入探讨如何在Android应用中集成高德地图,并实现基础地图的...

    android下USB Host开发

    ### Android 下 USB Host 开发详解 #### 一、引言 随着移动技术的发展,Android 设备的功能日益强大,其中一项重要的功能就是支持 USB Host 模式。在 USB Host 模式下,Android 设备可以作为 USB 主机使用,这意味...

    安卓Android源码——roboguice-master.rar

    - **初始化过程**:当应用程序启动时,RoboGuice会自动寻找应用的`AndroidManifest.xml`中的`meta-data`标签,从中获取配置的Module类。然后创建`RoboInjector`实例,解析Module并构建依赖关系图。 - **依赖注入**...

    安卓架构小工具app startup的使用-------让初始化代码更简单(csdn)————程序.pdf

    - 如果不想在启动阶段初始化某个组件,可以通过删除对应的 `&lt;meta-data&gt;` 元素,或者使用 `tools:node="remove"` 属性来禁止自动初始化。 4. **延迟初始化**: - 除了启动时的自动初始化,App Startup 也支持延迟...

    Android几种多渠道打包的步骤详解

    1. 在 AndroidManifest 中添加 `&lt;meta-data android:name="UMENG_CHANNEL" android:value="${channel}" /&gt;` 2. 在 build.gradle 中添加 `baidu {}` 为指定渠道名称简写 3. 设置输出 APK 名称 4. 编译打包 ### ...

    as多渠道打包与一键完成全部打包并签名1

    【Android 多渠道打包与一键签名详解】 在Android开发中,多渠道打包是一项常见的需求,主要是为了针对不同的应用市场或推广渠道,制作带有特定标识的APK,以便追踪和分析不同渠道的效果。Android Studio提供了方便...

    android新浪微博SDK精简版

    - 在AndroidManifest.xml中添加必要的权限,如INTERNET权限,以及配置Activity的meta-data标签,放入AppKey。 - 实现授权流程,通常使用OAuth2.0协议,用户授权后,通过回调获取Access Token。 2. **登录功能**:...

Global site tag (gtag.js) - Google Analytics