字符串通常存储在资源文件中strings.xml。它们是使用<string>XML元素定义的。
的目的strings.xml是允许国际化。您可以strings.xml为每种语言的iso代码定义一个。因此,当系统查找字符串'app_name'时,它首先检查与当前语言相对应的xml文件,如果找不到,则在默认strings.xml文件中查找条目。这意味着您可以选择仅本地化某些字符串,而不能本地化。
/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Hello World App</string> <string name="hello_world">Hello World!</string> </resources>
一旦在XML资源文件中定义了字符串,应用程序的其他部分就可以使用它。
应用程序的XML项目文件可以<string>通过参考来使用元素@string/string_name。例如,在Android Studio中,默认情况下,应用的清单(/manifests/AndroidManifest.xml)文件包括以下行:
android:label="@string/app_name"
这告诉android寻找一个<string>名为“ app_name”的资源,以将其安装或显示在启动器中时用作应用程序的名称。
另外一次您将<string>在android中使用XML文件中的资源将在布局文件中。例如,以下内容表示一个TextView,其中显示了hello_world我们之前定义的字符串:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world"/>
您还可以<string>从应用程序的Java部分访问资源。要从hello_world上方调用Activity类中的相同字符串,请使用:
String helloWorld = getString(R.string.hello_world);