【答疑释惑】Android多国语言实现原理

先来看一下网友的问题:

网友们问的问题是android中布局文件中android:text="hello_world"和

android:text="@string/hello_world"的区别。

我的解答是:

Android中都会提供多套资源来进行屏幕的适配和语言适配,来看一下Google源码下一个APP的资源目录:

首先在要知道每次在string.xml文件中添加字符串的时候都会生成一个字符串ID,ID是一个int值,比如上面的是R.string.hello_world,这个是编译器自动生成的,如现在string.xml文件添加hello_world,如下:

然后就会自动在R.java文件中生成对应的资源ID。

这个资源ID:hello_world对应着不同value包下string.xml文件中的字符串资源hello_world,在进行语言切换的时候Android系统会自动寻找当前语言对应的资源包中的资源,完成语言切换。

如果你在布局文件中写android:text="hello_world"那就写死了,进行语言切换的时候这个控件显示的内容是不会改变的。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java 成神之路

jvm 性能调优工具之 jinfo

3468
来自专栏达摩兵的技术空间

你不知道的opn模块

opn模块通常是作为跨平台的打开文件或者网站的模块,在web应用中最常见的使用是比如项目开发或者启动的时候打开浏览器进行访问。

331
来自专栏小怪聊职场

爬虫课程(十)|豆瓣:通过Pipeline保存数据到json文件和mysql数据库

2475
来自专栏学习有记

学委助手

学委除了要收作业,最烦的就是统计谁没有交作业啦,还有就是大家的命名不统一造成文件排序混乱,更加大了学委统计的难度。所以,写这个应用的目的就是查交和格式化文件命名...

702
来自专栏Java帮帮-微信公众号-技术文章全总结

kettle学习【大牛经验】

ETL是EXTRACT(抽取)、TRANSFORM(转换)、LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的...

722
来自专栏企鹅号快讯

网页解析之Beautiful Soup库运用

今日分享:Beautiful Soup库简单应用 一句话来理解 Beautiful Soup库就是:它是解析遍历维护标签树的功能库。以下是BeautifulSo...

1727
来自专栏惨绿少年

练习题 一下

1.1 第8题 输出test.txt文件内容时,不包含oldboy字符串的命令 文件内容: [root@znix ~]# cat /data/test.txt ...

1910
来自专栏性能与架构

5个实用的Linux命令行技巧

1. 输出内容格式化 例如 mount 命令的输出结果看起来很费劲 ? 可以使用 column 对其进行格式化 mount | column -t ? 再比如有...

2616
来自专栏别先生

Hadoop Shell命令(基于linux操作系统上传下载文件到hdfs文件系统基本命令学习)

Apache-->hadoop的官网文档命令学习:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html...

1797
来自专栏小狼的世界

PHP文件上传中的安全问题

在使用PHP进行开发时,经常遇到文件上传的场景。其中会隐藏很多我们平时注意不到的安全问题,我总结了一下,主要有几个方面:

512

扫描关注云+社区