为什么我们在string.xml中指定字符串

时间:2014-04-30 05:29:49

标签: android string

是否真的需要在XML文件中指定字符串。当字符串直接写入而不是从strings.xml中提取时,Android总是会显示警告。使用XML

有什么好处

2 个答案:

答案 0 :(得分:5)

最重要的用途是 来处理本地化

在运行时,Android系统根据当前为用户设备设置的区域设置使用适当的字符串资源集。

例如,以下是不同语言的一些不同的字符串资源文件。

  • 英语(默认语言环境),/ values / strutr.xml:
<string name="title">My Application</string>
<string name="hello_world">Hello World!</string>
  • 西班牙语,/ values-es / strutr.xml:
<resources>
   <string name="title">Mi Aplicación</string>
   <string name="hello_world">Hola Mundo!</string>
</resources>
  • 法语,/ values-fr / strings.xml:
<resources>
    <string name="title">Mon Application</string>
    <string name="hello_world">Bonjour le monde !</string>
</resources>

在源代码中,您可以使用语法R.string引用字符串资源。有多种方法可以通过这种方式接受字符串资源。

// Get a string resource from your app's Resources
String hello = getResources().getString(R.string.hello_world);

// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

来自Supporting Different Languages


阅读Localizing with Resources了解详细信息,Android Localization Tutorial是一个非常好的教程。

答案 1 :(得分:4)

我们在strings.xml上添加了字符串,因为我们可以轻松地将整个应用程序翻译成其他语言。

因此,在文件夹值中,您将拥有带有此内容的strings.xml:

<string name="hello">Hello</string>

在values-fr中包含此内容的strings.xml:

<string name="hello">Bonjour</string>

如果您想使您的应用程序支持不同 - 使用2种语言,则必须遵循string.xml。