安卓:使用strings.xml的主要想法是什么?

5

请问使用strings.xml的主要目的是什么?我认为它对于多语言支持很有用,但我们如何为此组织它呢?如果我不想在我的Android应用程序中使用多语言支持,我需要它吗?

strings.xml是用于存储Android应用程序中所有字符串资源的标准文件。使用此文件可以轻松地管理和组织您的应用程序文本内容,并在多语言环境下提供本地化支持。如果您不打算在应用程序中使用多语言支持,则不需要使用此文件。


1
也许你不想将你的应用程序转换成其他语言。但是规范就是规范。 - Arslan Anwar
1
如果我们在多个地方使用某个字符串,如果它的值发生变化,我们是否真的需要在每个地方都进行更改?请使用strings.xml。 - Piovezan
2个回答

11

这个想法是为了代表不同字符串的单个位置,这样你的代码就不会充斥着字符串文字。除此之外,你还可以轻松地进行本地化。有关本地化文件的组织,请参见:

http://developer.android.com/guide/topics/resources/localization.html#creating-alternatives

如果你不需要进行本地化,那么你需要它吗?不需要。但从长远来看,这可能会让事情更容易,我建议出于这个原因使用它。


我一直在使用strings.xml来存储字符串,但并非用于本地化目的。我之所以使用它,是因为在使用Android库项目时覆盖这些字符串更容易。我的问题是,将像md5密钥这样重要的字符串存储在strings.xml中有多安全?我有一些md5密钥,这些密钥根据应用程序项目而变化,但使用它的代码位于库项目中,因此我将字符串存储在strings.xml中,并在每个应用程序项目中覆盖该文件。 - Tony Chan

5
硬编码字符串是不好的。
使用参数化字符串(例如使用strings.xml)是好的。
能够国际化您的字符串(使用语言和/或区域设置特定版本的strings.xml)甚至更好 :)
PS:
要利用国际化功能,只需创建资源子目录即可。 Google将为您提供大量参考/示例。这里是一个示例:

http://developer.android.com/guide/topics/resources/localization.html

* res/values/strings.xml   
  Contains English text for all the strings that the application
  uses, including text for a string named title.

* res/values-fr/strings.xml 
  Contain French text for all the strings, including title.

* res/values-ja/strings.xml
  Contain Japanese text for all the strings...

是的,即使您不打算立即进行国际化,也应该养成使用strings.xml(以及colors.xml和dimens.xml等等)的习惯。

在我看来....


我一直在使用strings.xml存储字符串,但不是为了本地化目的。我之所以使用它,是因为在使用Android库项目时覆盖这些字符串更容易。我的问题是,将像md5密钥这样重要的字符串存储在strings.xml中有多安全?我有一些md5密钥,这些密钥根据应用程序项目而变化,但使用它的代码位于库项目中,因此我将字符串存储在strings.xml中,并在每个应用程序项目中覆盖该文件。 - Tony Chan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接