java – 在Android中,是否有理由将字符串资源用于不会被翻译的字符串?

我想知道在Android代码中使用java文件中定义的字符串有什么缺点.

我喜欢使用普通的旧Java字符串来处理不可见的字符串,例如我正在解析的XML文档中的名称,或者bundle的键.将所有这些内容保存在使用它们的java文件中而不是将它们移动到XML文件中并使代码更复杂似乎是个好主意.

然而,我看到许多Android代码示例似乎将每个字符串放入资源文件中.

在java文件中使用字符串有什么问题?人们不这样做的原因是什么?我一直在我的应用程序中这样做,到目前为止还没有看到任何问题.

请注意,我知道XML文件对于需要翻译的内容非常有意义.这个问题适用于字符串保持不变的情况.

让我试着让这个问题更清楚:

有什么理由除外:

>因为它是标准/最佳实践等 – 我的问题基本上是:为什么它是最佳实践,仅仅因为i8n,还是有其他原因?
>因为它允许您使用资源框架进行翻译,依赖于设备的字符串等.
>因为它允许您使用非ASCII字符.

最佳答案
您的问题的简单答案是将所有字符串放入资源的标准.还有很多原因,如果你将字符串保存在xml / java文件中,则必须更新这些文件中的每个引用以获得单个字符串.

例如.如果你想在5个不同的文件中使用“Ok”改为“确认”,你必须在所有这5个文件中进行更改,但对于String资源,你只需要更新一个string.xml文件.

编辑

请在下面找到我们应该使用String.xml的一些原因

1)更新对多次出现的单个引用.根据@treesAreEverywhere它可以使用公共静态字符串完成,但它将在应用程序启动时占用内存,直到应用程序关闭.但是在String.xml中编写的String将在使用时加载.

2)多语言支持.您可以创建多语言资源文件夹以支持您的多语言应用程序,因此使用Locale更改的语言将由OS在运行时根据语言资源文件夹动态维护.

3)请查看Localization文档,其中提供了有关使用string.xml的更多信息

4)字符串不会使应用程序代码混乱,使其清晰易用.

这是一种像其他任何语言一样的编码标准.但是如果需要,可以忽略它,并且可以在代码中使用公共静态字符串变量创建代码.使用string.xml不是必须的,但它是一个很好的编码实践来使用它.良好的做法,例如用括号括起单个语句来关闭if块而不是保持原样.

if(condition){statement;而不是if(condition)语句;

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...