3. <string name= "hello">Hello World, HelloActivity!</string>
4. <string name= "app_name"> Android,你好!</string>
5. </resources>
复制代码
每个 string 标签声明了一个字符串,name 属性指定其引用名。
为什么需要把应用中出现的文字单独存放在 strings.xml 文中呢?
原因有二,一是为了国际化,Android 建议将在屏幕上显示的文字定义在 strings.xml
中,如果今后需要进行国际化,比如我们开发的应用本来是面向国内用户的,当然要在屏幕
上使用中文,而如今我们要让应用走向世界,打入日本市场,当然需要在手机屏幕上显示日
语,如果没有把文字信息定义在 strings.xml 中,就需要修改程序内容了。但当我们把所有屏
幕 上 出 现 的 文 字 信 息 都 集 中 存 放 在 strings.xml 文 件 之 后 , 只 需 要 再 提 供 一 个
strings.xml 文件,把里面的汉字信息都修改为日语,再运行程序时,Android 操作系统会根
据用户手机的语言环境和国家来自动选择相应的 strings.xml 文件,这时手机界面就会显示出
日语。这样做国际化非常的方便。
二是为了减少应用的体积,降低数据冗余。假设在应用中要使用“我们一直在努力”这段
文字 10000 次,如果我们不将“我们一直在努力”定义在 strings.xml 文件中,而是在每次使用
时直接写上这几个字,这样下来程序中将有 70000 个字,这 70000 个字占 136KB 的空间。
而由于手机的资源有限,其 CPU 的处理能力及内存是非常有限的,136KB 对手机程序来说
是个不小的空间,我们在做手机应用是一定要记住“能省内存就省内存”。而如果将这几个字
定义在 strings.xml 中,在每次使用到的地方通过 Resources 类来引用该文字,只占用了
14B,因此对降低应用体积效果是非常有效地。当然我们可能在开发时可能并不会用到这么
多的文字信息,但是“不以善小而不为,不以恶小而为之”,作为手机应用开发人员,我们一
定要养成良好的编程习惯。
2) arrays.xml
用来定义数组,在 Activity 中使用 getResources().getStringArray(resourceId)获
取一个 String 数组。
示例代码如下:
1. <?xml version="1.0" encoding="utf-8"?>
2. <resources>
3. <string-array name="sports">
4. <item>足球</item>
5. <item>篮球</item>
6. <item>太极</item>
7. <item>乒乓球</item>
8. </string-array>