把app的字符串放到另外一个文件中是一个好习惯。Android用android工程中的资源文件夹让这件事变的很简单。

如果使用Android SDK Tools创建工程,这个工具会在工程的根目录下创建res/文件夹。在res/文件夹下面有各种类型的资源的字文件夹。有一些默认的文件比如res/values/string.xml,它是用来存放字符串的。

创建本地文件夹和字符串文件

为了支持更多语言,在res/中创建其他的values扩展的文件夹,就是就是在文件夹名后加上一个横线和国家的ISO码。例如,values-es/就是包含代码为"es"的资源文件夹。Android在运行时根据设置加载合适的资源。

一旦你觉得了需要支持的语言,就可以创建资源的子文件夹和字符串文件了。例如:

MyProject/

res/

values/

strings.xml

values-es/

string.xml

values-fr/

string.xml

把字符串值添加到合适的文件中

在运行时,Android根据本地用户的设置来使用合适的字符串资源

例如,下面是不同语言对应的不同的字符串

英语(默认),/values/string.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="title">My Application</string>
  4. <string name="hello_world">Hello World!</string>
  5. </resources>

西班牙语, /values-es/strings.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="title">Mi Aplicación</string>
  4. <string name="hello_world">Hola Mundo!</string>
  5. </resources>

法语,/values-fr/strings.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="title">Mon Application</string>
  4. <string name="hello_world">Bonjour le monde !</string>
  5. </resources>

注意:你可以使用本地化标识(或者任何配置标识)在任何类型的资源上,比如你想要提供本地化的图片。更多信息,参考Localization.

使用字符串资源

可以使用资源名来在源代码或者其他XML文件中引用字符串资源,资源名在<string>元素的name属性中定义。

在源代码中,可以使用语句R.string.<string_name>来引用字符串资源。有很多方法来引用字符串资源

例如:

  1. // Get a string resource from your app's Resources
  2. String hello = getResources().getString(R.string.hello_world);
  3.  
  4. // Or supply a string resource to a method that requires a string
  5. TextView textView = new TextView(this);
  6. textView.setText(R.string.hello_world);

在xml文件中,可以使用@string/<string_name>来引用字符串属性。

例如:

  1. <TextView
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:text="@string/hello_world" />

上一篇:Android - 支持不同的设备

下一篇:Android - 支持不同的设备 - 支持不同的屏幕

Android - 支持不同的设备 - 支持不同的语言的更多相关文章

  1. Android - 支持不同的设备 - 支持不同的屏幕

    Android整体上按照两大类来分类设备屏幕:尺寸和分辨率.app在设备上运行应该考虑大小和分辨率.同样的,你应该包含不同的资源来让app适应不同的屏幕大小和分辨率. 整体上有四种尺寸:小的,正常的, ...

  2. Android - 支持不同的设备 - 支持不同的平台版本

    在最新版本的Android为app提供很好的新API时,也应该继续支持旧版本的Android直到大部分设备已经更新了.这里将要介绍如何在使用最新API带来的优点的同时继续支持老版本. Dashboar ...

  3. appcompat v21: 让 Android 5.0 前的设备支持 Material Design

    1. 十大Material Design开源项目 2. appcompat v21: 让 Android 5.0 前的设备支持 Material Design 主题 AppCompat已经支持最新的调 ...

  4. 国际化之Android设备支持的语种

    昨天发了关于iOS支持的语种,文章最后也补了安卓支持语种列表.但最后发现安卓设备支持跟它列的有出入,我重新完全手工整理了一遍. 我将对应的语种在安卓的语言列表里的显示,也全部逐一列出来了,方便大家到时 ...

  5. Android学习路线(十九)支持不同设备——支持不同(Android)平台版本号

    当最新的Android版本号为你的应用提供着非常棒的APIs时.你却要在很多其它的设备更新之前继续支持老的系统版本号.这篇课程怎样在继续支持低版本号的系统的情况下使用新版本号的高级API. Platf ...

  6. 传感器(2)常用api简介及列出当前设备支持的传感器代码

    Android SDK提供了Android sensor framework,可以用来访问当前Android设备内置的传感器. ASF提供了很多类和接口,可以帮助我们完成各种与传感器有关的任务. 例如 ...

  7. 【Android Developers Training】 13. 支持不同平台版本

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  8. XE5应用开发支持的安卓设备

    XE5应用开发支持的安卓设备 A.官方文档声明 RADStudio 支持Android设备的应用开发,android版本从2.3到4.3.x,ARMv7处理器,MEON支持.根据Embarcadero ...

  9. ubuntu14.04上Virtualbox安装win7(使用Ghost镜像安装,启用USB设备支持,设置共享目录)

    由于某些软件只有windows版本,于是只好安装个虚拟机win7 /**************************安装*************************************/ ...

随机推荐

  1. 约瑟夫问题--list模拟循环链表

    约瑟夫问题 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 n个人想玩残酷的死亡游戏,游戏规则例如以下: n个人进行编号,分别 ...

  2. Harris角点检测算原理

    主要参考了:http://blog.csdn.net/yudingjun0611/article/details/7991601  Harris角点检测算子 本文将该文拷贝了过来,并做了一些数学方面的 ...

  3. Cocos2d-x Tiled地图编辑器(一)基本使用

    Tiled地图编辑器支持普通视角地图和45度角地图, 它生成的地图数据文件cocos2d-x完美的支持,Tiled地图编辑器是一个以普通使用为目标地图编辑器,它使用简单而且能够轻松地在不同的游戏引擎中 ...

  4. Linux进程间通信(九)---综合实验之有名管道通信实验

    实验目的 通过编写有名管道多路通信实验,进一步掌握管道的创建.读写等操作,同时复习使用select()函数实现管道的通信. 实验内容 这里采用管道函数创建有名管道(不是在控制台下输入命令mknod), ...

  5. mybatis 打印SQL语句

    在log4j文件中配置 log4j.rootLogger=DEBUG log4j.logger.com.ibatis=DEBUG log4j.logger.org.mybatis=DEBUG  

  6. VIM命令集

    Command Action Notes vim file +54 open file and go to line 54 any : command can be run using + on co ...

  7. WPF界面设计技巧(3)—实现不规则动画按钮

    原文:WPF界面设计技巧(3)-实现不规则动画按钮 发布了定义WPF按钮的教程后,有朋友问能否实现不规则形状的按钮,今天我们就来讲一下不规则按钮的制作. 不规则按钮的做法实际上和先前我们做不规则窗体的 ...

  8. ECSHOP分类页面筛选功能(按分类下子分类和品牌筛选)

    其实分类页面里面本来就有相关的品牌.属性.分类的筛选功能在category.php和模板加上相应的功能即可 1.读出当前分类的所有下级分类 $chlidren_category = $GLOBALS[ ...

  9. Struts 2 初学的复习巩固

    Q:使用Struts2 开发程序的基本步骤? A: 1)加载Struts2类库: 2)配置web.xml文件,定义核心Filter来拦截用户请求: 3)开发视图层页面,即JSP页面: 4)定义处理用户 ...

  10. 点集配对问题(状态dp)

    给定n个点(n是偶数)使得两个点两两配对,最后总的距离和最小. 用是表示集合,那么dp[s]表示集合s配对后的最小距离和  , 状态转换方程为  表示集合中任意拿两个元素配对,然后转移为更小的两个集合 ...