把UI中的字符串从代码中提取到一个外部文件中是一个好的习惯。Android为每个项目提供一个专门的资源文件夹来实现。
如果你使用SDK工具来创建的项目,那么这个工具会在项目的根目录创建一个res/文件夹,这个文件夹中的子文件夹表示不同的资源类型。这里也有一些默认的文件,比如res/values/strings.xml,它定义了你的字符串的值。
创建区域文件夹和字符串文件
为了支持多国语言,你需要在/res中添加values加一个连字符号和一个ISO国家代码命名的文件夹。比如,values-es/包含了的资源是为语言代码为'es'的国家提供的。android根据设备中本地化设置中的语言设置对应的加载适合的资源。
一旦你决定支持某个语言,那么创建相应的子目录和字符串文件,例如:
MyProject/ res/ values/ strings.xml values-es/ strings.xml values-fr/ strings.xml
在适当的文件中添加字符串的值。
在运行的时候,android系统根据用户设备中设置的当前区域使用对应的字符串资源。
例如,下面是一些不同的字符串资源,对应不同的语言。
英语(默认区域),/values/strings.xml:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="title">My Application</string> <string name="hello_world">Hello World!</string></resources>
西班牙语,/values-es/strings.xml:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="title">Mi Aplicación</string> <string name="hello_world">Hola Mundo!</string></resources>
法语,/values-fr/strings.xml:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="title">Mon Application</string> <string name="hello_world">Bonjour le monde !</string></resources>
提示:你可以在任何资源类型上使用区域限定符,比如你可以为不同的区域提供不同的图片,想了解更多,请看
Localization
.
使用字符串资源
你可以在源代码和其他XML文件中通过资源名称引用这些资源,这个名称是通过<string>元素的name属性定义的。
在代码中,你可以参考类似R.string.<string_name>这样的语法调用,下面的函数中就是通过这个方法去调用一个字符串资源的。
例如:
// 从程序资源中获取字符串String hello = getResources().getString(R.string.hello_world);// 为需要字符串的方法提供字符串资源TextView textView = new TextView(this);textView.setText(R.string.hello_world);
在XML文件中,你可以使用@string/<string_name>这样的语法接收一个字符串资源。例如:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />
分享到:
相关推荐
- 适配不同语言环境,实现多语言支持。 - 优化布局以适应各种屏幕尺寸和密度。 - 兼容不同的Android系统版本。 9. **管理Activity的生命周期** - 深入理解Activity的生命周期方法。 - 处理Activity的启动、...
"training-android-kotlin"这个项目很显然是一个关于Android应用开发的训练资源,它专门针对Kotlin语言进行教学。下面将详细探讨这个主题中的关键知识点。 1. **Kotlin基础知识**:Kotlin是一种现代、类型安全的...
- 适配不同的语言:学习如何支持多语言,满足国际化需求。 - 适配不同的屏幕:了解各种屏幕尺寸和分辨率,采用响应式布局策略确保应用在不同设备上表现良好。 - 适配不同的系统版本:考虑到不同Android版本间的...
9. **Kotlin Coroutines**:Kotlin的协程支持异步编程,解决了Android平台上线程管理和避免回调地狱的问题,提高了应用的性能和响应性。 10. **Android KTX**:这是一个库,为Kotlin提供了许多方便的扩展函数,简化...
通过这个项目,我们可以深入理解Android应用开发的基本原理,特别是与Python相关的部分,尽管Android原生支持的语言是Java。 【Java】标签提示我们,虽然项目的名称包含"Python",但实际的开发语言是Java。在...
它支持多种语言,并具有高度可训练性,可以根据需要训练识别特定字体和文字。在Android中使用Tesseract,需要一个名为“Tess-two”的库,它是专门为Android平台定制的Tesseract和Leptonica库的封装。 2. Android ...
为了使应用能够适配不同设备,开发者必须了解如何支持不同的语言、屏幕尺寸和平台版本。文档提供了对多设备支持的策略和技巧,比如如何处理不同语言的资源文件,如何适配不同屏幕的布局等。 #### 1.4 活动生命周期...
在本项目"AndroidTraining_Android项目_tongue5nn_android_"中,我们主要探讨的是一个Android应用程序的开发,它集成了新闻聚合功能,包括日历新闻和视频内容。这个项目由用户tongue5nn创建,是Android开发的学习...
- 需要设置最低支持的Android SDK版本和目标SDK版本,以确保应用程序能够在不同版本的Android设备上正常运行,并且利用最新平台的功能。 - Android项目的创建可以通过Eclipse IDE结合ADT插件,或者使用SDK的命令行...
在Android Training中,开发者可以学习到一系列关于构建高质量Android应用的专业知识。这个训练课程涵盖了从基础到高级的各种主题,旨在帮助开发者提升技能,优化用户体验,以及充分利用Android平台的特性和功能。 ...
在这个`android-training-master`压缩包中,你将找到一系列按照不同主题划分的子目录,每个子目录代表一个特定的Android开发知识点或实践技巧。通过深入学习这些教程,开发者可以逐步提升他们的Android开发能力。 1...
【Android 开发者纳米学位】是谷歌与优达...总的来说,"android-training"项目是全面且深度的Android开发学习路径,通过这个项目,开发者将获得从基础到高级的全方位技能,为在Android平台上构建专业应用打下坚实基础。
**Java**:Java 是一种广泛使用的面向对象的编程语言,具有跨平台的能力,被应用于各种领域,如服务器端开发、移动应用(尤其是Android)、大型企业级应用等。在 DVD rental training center 项目中,Java 可能作为...
Java作为一种广泛应用于企业级应用开发、移动应用(如Android)、大数据处理等领域的高级编程语言,其基础知识的重要性不言而喻。以下是Java基础的一些关键知识点: 1. **Java环境配置**:学习Java前,首先要安装...
1. **跨平台兼容性**:Ionic 5 可以通过 Cordova 或 Capacitor 在 iOS、Android 和 Web 平台上运行,实现一次编写,多处部署。 2. **Angular 集成**:Angular 的强大功能,如依赖注入、模板驱动和响应式编程,使得...
Flutter是由Google开发的一个开源UI工具包,它允许开发者使用Dart语言高效地构建高质量的跨平台移动应用,包括Android和iOS。 【描述】"初级培训初学者"表明该应用的目标用户群体是那些刚开始接触日语的人,提供了...
Kotlin 是一种现代、静态类型的编程语言,由 JetBrains 开发,主要用于 Android 应用开发,但也适用于服务器端、Web 开发和其他平台。"training-kotlin" 存储库是专为初学者设计的一系列代码示例和练习,旨在帮助...
它具有丰富的类库,能够应用于各种领域,如Web开发、移动应用(尤其是Android平台)、企业级应用以及大数据处理等。 Java的学习通常分为以下几个关键部分: 1. **基础语法**:包括变量、数据类型、运算符、控制...
【20150616AndroidTraining】是2015年6月16日进行的一次关于Android开发的专项培训,其重点是通过官方训练文档提供的案例来提升开发者们的技能。这次培训的核心目标是深入理解Android平台,熟练掌握Java编程语言,并...
1. Android应用开发:Android系统是基于Linux的操作系统,允许开发者使用Java或Kotlin等语言进行应用开发。Nike Training应用的开发可能涉及UI设计、数据存储、网络通信、传感器交互等多个技术领域。 2. 健康追踪:...