您可以使用字符串资源定义Android intent-filter吗?

时间:2011-12-09 04:57:07

标签: android string resources intentfilter

我想在strings.xml文件中定义我的意图的字符串名称,然后将该字符串绑定到意图过滤器,如下所示:

<intent-filter >
    <action android:name="@string/app_intent" >
    </action>

    <category android:name="android.intent.category.DEFAULT" >
    </category>
</intent-filter>

当我尝试这个时,我得到关于系统的各种错误可能找不到任何活动来处理我的意图。我试图将值(即意图名称)保持集中,而不是在清单和代码中进行硬编码。事实上,至少这让我可以将它从应用程序代码中集中出来,但我仍然在清单中对其进行了硬编码。

这真的不可能做到,还是有办法让它发挥作用?

2 个答案:

答案 0 :(得分:6)

它不是intent-filter的问题,问题在于android:nameandroid:name属性也没有为活动名称获取字符串资源。示例<activity android:name="@string/app" android:label="@string/app_name">在android中无效。

答案 1 :(得分:0)

没有直接回答OP的问题,但是让我想到这个问题的是,我希望能够在不同情况下定义不同的动作(包括使用该库在应用程序的android库中定义触发组件的动作)。我最终发现了关于manifest placeholders的信息,这实际上是我所需要的。希望这对其他人也有用。

PS:是的,由于清单生成是在构建时发生的,因此在应用中定义占位符仍允许您在库中使用它。