为什么要标记意图过滤器?

18

我刚刚开始接触意图过滤器(Intent Filters),发现在示例代码和其他在线资源中,使用android:label标签来标注Intent Filters的方法有些混乱,但是我还没有找到一个明确的解释来说明标记的目的。

有没有人能指导我正确的方向呢?

谢谢,

保罗(Paul)


你能给出你所见过的不同方法的例子吗? - Squonk
1个回答

21
基本示例:
  • 您有一个打开文本文件的应用程序(具有相应意图过滤器的活动)
  • 有多个应用程序可以执行此操作。
  • 当用户打开文本文件时,将显示一个选项菜单,允许用户决定使用哪个活动来打开文本文件。
  • 您在意图过滤器的android:label中放置的字符串是用户在备选菜单中看到的字符串。
这在官方文档中有解释。
用户可读的父组件标签。当将组件呈现给用户时,使用该标签描述过滤器所描述的功能,而不是由父组件设置的标签。
该标签被设置为对字符串资源的引用,以便像用户界面中的其他字符串一样进行本地化。然而,在您开发应用程序时,它也可以作为原始字符串进行设置。
默认值是由父组件设置的标签。如果父组件未指定标签,默认值则为 "" 元素的 "label" 属性设置的标签。

1
你知道是否有更新的链接吗?当前页面的版本没有提到 android:labellabel - ataulm
3
请参见http://developer.android.com/guide/topics/manifest/intent-filter-element.html。 - matiash
3
值得注意的是,文档还指出:“默认值是由父组件设置的标签集。如果父级未指定标签,则默认值为由<application>元素的label属性设置的标签。” - caw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接