我想在strings.xml
文件中定义我的意图的字符串名称,然后将该字符串绑定到意图过滤器,如下所示:
<intent-filter >
<action android:name="@string/app_intent" >
</action>
<category android:name="android.intent.category.DEFAULT" >
</category>
</intent-filter>
当我尝试这个时,我得到关于系统的各种错误可能找不到任何活动来处理我的意图。我试图将值(即意图名称)保持集中,而不是在清单和代码中进行硬编码。事实上,至少这让我可以将它从应用程序代码中集中出来,但我仍然在清单中对其进行了硬编码。
这真的不可能做到,还是有办法让它发挥作用?
答案 0 :(得分:6)
它不是intent-filter的问题,问题在于android:name
。 android:name
属性也没有为活动名称获取字符串资源。示例<activity android:name="@string/app" android:label="@string/app_name">
在android中无效。
答案 1 :(得分:0)
没有直接回答OP的问题,但是让我想到这个问题的是,我希望能够在不同情况下定义不同的动作(包括使用该库在应用程序的android库中定义触发组件的动作)。我最终发现了关于manifest placeholders的信息,这实际上是我所需要的。希望这对其他人也有用。
PS:是的,由于清单生成是在构建时发生的,因此在应用中定义占位符仍允许您在库中使用它。