Android Manifest之<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/kangroo存储的任何值到这个“zoo”名:

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

    另一方面,使用resource属性将分配“zoo”资源数字标识,而并非是这个值存储在这个资源中。

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

    强烈推荐这种做法,因为这样就可以避免用多个单独的<meta-data>实体来提供相关数据。反之,如果你有和组件相关的复杂数据,那么就用resource来储存它并使用resource属性来通知它标识的组件。

属性

android:name

    这项的唯一的名称。为了确保名称唯一,使用java命名规范-例如,“com.example.project.activity.fred”。

android:resource

    到资源的引用。这个资源标识是分配到这项的值。这个标识能通过Bundle.getInt()方法从meta-data Bundle中获取。

android:value

    分配到这项的值。能用来分配为值的数据类型和组件能用来获取那些值的方法如下表所示:

类型

Bundle方法

字符串,用双反斜杠(\\)来转义字符串- 例如“\\n”和针对Unicode字符的“\\uxxxx”。

getString()

整数。例如:“100”

getInt()

布尔值。例如:“true”或“false”

getBoolean()

颜色值。“#rgb”,“#argb”,“#rrggbb”,“#aarrggbb”的整数形式。

getInt()

浮点型。例如“1.23”

getFloat()

出处

    API Level 1

### 回答1: 错误:在<manifest><application>中发现意外元素<intent-filter>。 这个错误通常是由于在<application>标签中放置了<intent-filter>标签而导致的。在<application>标签中只能包与应用程序相关的组件,例如<activity>、<service>和<receiver>等。如果您需要在应用程序级别上定义意图过滤器,请将<intent-filter>标签放置在<activity>、<service>或<receiver>标签中。 ### 回答2: 在Android应用程序开发中,我们经常会遇到一些错误信息,其中一个比较常见的错误是“error: unexpected element <intent-filter> found in <manifest><application>”。这个错误表示在manifest文件的application标签中出现了不应该出现的intent-filter元素。那么为什么会出现这个错误呢?如何解决呢? 通常在Android应用程序中,intent-filter元素应该出现在Activity、Service或Receiver标签的内部,它用于指定一个组件所能响应的Intent。但是,如果我们在manifest文件的application标签中使用intent-filter元素,就会出现“error: unexpected element <intent-filter> found in <manifest><application>”这个错误。 那么如何解决这个错误呢?解决方法其实很简单,只需要将intent-filter元素移到合适的位置就可以了。首先要确认哪个Activity、Service或Receiver使用了这个intent-filter元素,然后将它移动到相应的标签内即可。例如,如果是在MainActivity中使用了intent-filter元素,就需要将它移到MainActivity标签内。如果有多个组件使用了同一个intent-filter元素,就需要将它移到每个组件的标签内。 除了移动intent-filter元素以外,我们也可以使用注释将它暂时屏蔽起来,或者干脆将它删除。但是这些方法都不是最优解,最好的做法还是将intent-filter元素移到正确的位置。 总之,遇到“error: unexpected element <intent-filter> found in <manifest><application>”这个错误时不要惊慌,只需要按照上述方法进行处理即可。同时,我们在开发Android应用程序时也要注意标签的嵌套顺序,避免出现这种错误。 ### 回答3: 这个错误发生在Android应用程序开发中,通常是由于在AndroidManifest.xml文件的<application>标签内添加了一个不正确的<intent-filter>标签。 在AndroidManifest.xml文件中,<application>标签是用来描述应用程序的基本信息和配置的,如图标、名称、版本号等。而<intent-filter>标签则是告诉系统该组件能够处理哪种类型的Intent。 当一个<intent-filter>标签被放置在<application>标签内部时,会导致系统无法正确处理应用程序的基本信息和配置。因此,出现了“error:unexpected element <intent-filter> found in <manifest><application>”错误。 要解决这个问题,可以检查AndroidManifest.xml文件中<application>标签内的所有子元素,确保没有意外插入的<intent-filter>标签。如果发现错误,则可以将它们移除并保存文件,再重新编译应用程序就可以解决这个错误。 总之,在Android应用程序开发中,正确的使用<application>和<intent-filter>标签是非常重要的,可以避免许多错误和问题。在增加或修改AndroidManifest.xml文件时,一定要仔细检查,以确保文件中的语法和结构是正确的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值