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

问题描述 投票:15回答:2

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

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

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

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

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

android string resources intentfilter
2个回答
6
投票

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


1
投票

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

PS:是的,在应用程序中定义占位符仍允许您在库中使用它,因为在构建时发生了清单合并。

© www.soinside.com 2019 - 2024. All rights reserved.