4

我发现一些 AndroidManifest.xml 有一些 .

像这样:

<meta-data android:name="zoo" android:value="@string/kangaroo" />

安卓中的代码:

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

我可以在 string.xml 中定义一个字符串值,并且很容易在代码中得到它。

和 string.xml 有什么不同?

4

1 回答 1

3

这是一个不好的例子。看起来该值是应用程序使用的数据。清单是存储有关应用程序的元数据的正确位置。在这里放置应用程序使用的字符串数据(即消费)也是不可本地化的。

在我的一个应用程序中,我在库中有静态内容。该库有自己的版本号,并在“关于”活动中显示给用户。我可以将其存储为代码中的字符串常量,但使用清单元数据更合乎逻辑且可维护,其中所有应用程序版本信息与 SDK 版本等一起存储。

总而言之,在您给出的示例中,@string/kangaroo 值应该在 strings.xml 中。

于 2012-09-19T07:26:13.997 回答