【发布时间】:2010-12-17 23:16:23
【问题描述】:
在res/values/string.xml 目录的xml 中定义字符串有什么意义?它是否比仅将字符串定义为类中的常量更有效? (例如数据库表创建脚本等)
这是组织问题还是 Android 如何处理内存中的这些对象有什么好处?
【问题讨论】:
标签: android
在res/values/string.xml 目录的xml 中定义字符串有什么意义?它是否比仅将字符串定义为类中的常量更有效? (例如数据库表创建脚本等)
这是组织问题还是 Android 如何处理内存中的这些对象有什么好处?
【问题讨论】:
标签: android
【讨论】:
Context.getString() 将返回最适合的语言。您仍然可以使用参数(%1$s、%2$d)对其进行格式化,甚至可以更改不同语言的顺序。
如果您使用 strings.xml,您可以轻松翻译您的应用程序。只需创建一个后缀为 values-cs 的新文件夹,然后将带有捷克语字符串的 xml 放入其中,如果您在手机中设置了捷克语本地化,则整个应用程序将被翻译为捷克语。
【讨论】:
The hello string is defined in the res/values/strings.xml file. This is the recommended practice for inserting strings to your application, because it makes the localization of your application to other languages graceful, without need to hard-code changes to the layout file.
对我来说,第一点是破坏交易,任何让您的应用程序更快的事情。 (这是从创建我自己的应用程序的无数小时中假设的,并且从优化的角度来看,使用 string.xml 是最好的,另外,特别是在长列表视图中,它似乎对我来说加载得更快(droid A855))
【讨论】:
Context.getString() 将调用一个本机函数,该函数需要使用哈希查找来查找实际的 String 对象,更不用说它必须确定从中检索它的正确语言。