android中res文件夹的优先级?

android中res文件夹的优先级?,android,Android,我做了一个项目,在其中我使用了不同语言的xml,比如language\u hi.xml,language\u en.xml。因此,根据文档,我为每个xml创建了不同的文件夹。例如,对于language_hi.xml,我制作了es/values hi对于language_en,我制作了res/values en,在我的每个xml中,字符串名称都是相同的。是否有任何方法可以在单击一个按钮时选择language_en.xml,在另一个事件中选择language_hi.xml 这是我的xml res/v

我做了一个项目,在其中我使用了不同语言的xml,比如
language\u hi.xml
language\u en.xml
。因此,根据文档,我为每个xml创建了不同的文件夹。例如,对于language_hi.xml,我制作了
es/values hi
对于language_en,我制作了res/values en,在我的每个xml中,字符串名称都是相同的。是否有任何方法可以在单击一个按钮时选择language_en.xml,在另一个事件中选择language_hi.xml

这是我的xml

res/values hi/language_hi.xml

<string name="hello">sachit</string>

<string name="app">colon</string>
<string name="hello">astro</string>

<string name="app">dev</string>
sachit
结肠
res/values en/language_en.xml

<string name="hello">sachit</string>

<string name="app">colon</string>
<string name="hello">astro</string>

<string name="app">dev</string>
astro
发展

不,没有。Android在运行时根据设备的语言决定语言。您可以强制更改设备的语言,但这不是一个很好的解决方案。相反,您可以生成自己的解决方案,并且您可以自己更改每个字符串。例如,您可以根据自己的喜好设置语言选项。然后根据选择的语言,您可以显示该语言的字符串。假设您有一条类似“请输入密码”的消息。您可以编写一个方法getStringAccordingToLanguage(“密码\警告”)。如果语言为英语,此方法将返回“请输入密码”。您可以将此方法替换为字符串。

您可以选择运行时使用的
语言环境
;例如,将其设置为英语将导致使用
res\values en\…
文件夹中的值

为此,需要以下代码:

Resources res = getResources(); // From your context
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = new Locale("en"); // For English
res.updateConfiguration(conf, dm); // Now, update the language
但是,我强烈建议不要使用此选项。当用户运行一个应用程序时,他们希望它要么是默认语言(在许多情况下是英语),要么是本地化语言。例如,当某人在俄罗斯时,给他一个印地语的应用程序真的没有好处

请记住,如果您对整个应用程序使用
en
,那么从
语言\u hi.xml
获取值是非常困难的,实际上,在任何情况下都不应该这样做。一个应用程序应该始终使用相同的语言,否则它将开始混淆用户(处理语言间翻译的应用程序除外)。然而,如果你对此感兴趣(无论出于什么深奥的原因),你应该回顾一下


附言:我想你知道这一点,但无论如何我应该提一提。如果未使用
res\values xx\…
指定手机使用的语言环境,则会使用
res\values\…
文件夹中的任何字符串。您可以找到相关信息。

您的意思是希望能够更改应用程序运行时使用的语言,还是希望从每个XML中选择特定字符串?例如,我正在执行此字符串s1=getResources().getString(R.String.hello);在这个阶段,s1'sachit'或'astro'中会出现什么,因为字符串名hello在这两个xml中都存在。那么有没有办法从desire xmlIn中选择desire字符串呢?根据我的经验,强制应用程序上的区域设置一次不能用于多个活动。您必须在每次创建
onCreate
时强制使用它,或者正确填充字符串文件并请求用户更改平板电脑的语言