在AndroidManifest.xml中定义一个字符串

时间:2013-05-07 16:26:34

标签: android

有没有办法在AndroidManifest.xml中定义一个或其他数据类型,以便其他标签如或可以引用字符串中包含的值?

<?xml version=1.0" encoding="utf-8">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <string name="foo" value="bar">
    <application>
        <activity>
            <meta-data android:name="metadata1" android:value="@string/foo"/>
        </activity>
    </application>
</manifest>

编辑:目的

希望在Manifest中包含字符串数据的原因是为了打包同一应用程序的多个版本,即英语,法语版本需要知道不同的扩展文件大小。

为了达到预期的效果,会生成清单,其中包含各种元数据来表示这些差异。

2 个答案:

答案 0 :(得分:2)

不在清单中,但您可以在res / values / strings.xml中定义它 - 例如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="foo">bar</string>
...

答案 1 :(得分:1)

为了达到我的成绩,我把孩子当作一个孩子而不是每个活动。

有用的说明,我正在使用Android Manifest的合并来实现此效果:

库:

<?xml version=1.0" encoding="utf-8">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">        
    <application>
        <activity></activity>
    </application>
</manifest>

MyProject的:

<?xml version=1.0" encoding="utf-8">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
     <meta-data android:name="metadata1" android:value="StringLocalValue"/>
</manifest>

然后我让每个活动访问数据:

ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
ai.metaData.getString("metadata1");

这意味着可以在父库项目中定义活动,并且可以将数据存储在子AndroidManifests中。