【答疑释惑】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相关

非常全面的vim配置文件

1673
来自专栏小李刀刀的专栏

[译]对《优化浏览器渲染》的补充

ISD Webteam的大布同学(twitter:@tc_bryanzhang)在2010年1月翻译了google Page Speed系列中的Optimize...

3146
来自专栏守望轩

Visual Studio 2008 每日提示(十一)

#101、块缩进和智能缩进的差异 原文链接:what’s the difference between smart indenting and block i...

2883
来自专栏知晓程序

开发 | 只需 10 分钟,教你做一款查询类小程序

在全局配置文件中,我们定义了一个页面。保存之后,将会自动生成 index 页面的基本目录。

963
来自专栏知晓程序

开发 | 如何在微信小程序的页面间传递数据?

我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法。

1002
来自专栏程序员宝库

IntelliJ IDEA 教程设置讲解

IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新...

1094
来自专栏lgp20151222

tar包和jar包和war包的区别?

tar:tar是*nix下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx....

842
来自专栏北京马哥教育

成为 Linux 终端高手的七种武器

Linux 终端不仅是一个键入命令的地方。如若你能熟谙这些基础技巧,那么你会在绝大多数 Linux 发行版的默认使用的 Bash shell中游刃有余。 这是...

2798
来自专栏JetpropelledSnake

Python入门之PyCharm的快捷键与常用设置和扩展(Mac系统)

1. 快捷键 2 . PyCharm的常用设置和扩展 -----------------------------------------------------...

1.1K8
来自专栏c#开发者

Vs.net 2008 sp1新特性之Dynamic Data Web Site

Vs.net 2008 sp1新特性之Dynamic Data Web Site 介绍 asp.net的动态数据,是一个web site开发框架,可让您很容...

3365

扫码关注云+社区