gpt4 book ai didi

java - 了解 R.java 和 Android 中的本地化

转载 作者:行者123 更新时间:2023-12-01 10:50:22 28 4
gpt4 key购买 nike

我正在尝试了解 R.java 的内部工作原理和 Android 中的本地化。我知道字符串是编译时资源,由 apt 生成。我有几个关于 R.java 的问题。

1.如果我打开 R.java 生成的文件,我可以看到

public final class R {
public static final class string {
public static final int HelloMessage=0x7f05000f;
}

为什么 R.String.HelloMessage 是 int。如果它是 static Final,本地化版本如何与相同的 int 一起工作,因为我看不到该变量的任何本地化版本。

2.切换到语言环境是如何发生的。有人能指点我一下 android 源代码吗?我已经浏览了 android.content.res.AssetManager,com.android .settings.LocalePicker.java 的代码,但我不确定R.Java 在幕后如何加载本地化字符串。

谢谢

最佳答案

Android 正在检索设备的区域设置,然后从正确的文件夹中选择字符串。它可以这样做,因为本地化字符串位于具有特定命名约定的文件夹中。相同字符串的 ID 在每个不同的文件夹中都是相同的...只需根据我所说的设备的区域设置在正确的文件夹中选择它...

另一个SO线程中解释了如何做到这一点的一种方法:Android get device locale

关于java - 了解 R.java 和 Android 中的本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33956252/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com