Android强制语言或语言环境如何变化?

时间:2018-01-31 21:44:13

标签: android configuration locale

在android中,当用户更改设备的语言时,我应用中的每个资源都会更改为与新语言的语言环境相关的资源。我们称之为A.

现在在我的Android应用程序中,用户可以选择“app”(而不是设备)的语言,并且每个资源都需要根据新语言进行更改。在我的一些活动中,语言和语言环境发生了变化,一切都像A一样。但在其他一些活动中(例如当用户处于密码活动时,用户输入密码进入应用程序所需的第一个活动),每个资源都与设备的语言相同。

如何完全强制我的应用程序更改语言/区域设置,就像Android在A中所做的那样?

我应该补充一点,当我更改设备语言时,密码活动也会改变语言。

1 个答案:

答案 0 :(得分:0)

您可以致电attachBaseContext(ContextWrapper),在自定义ContextWrapper的wrap方法中,您应该有以下内容:

Configuration newLocaleConfig = context.getResources().getConfiguration();
Resources res = context.getResources();
newLocaleConfig.locale = newLocale;
Locale.setDefault(newLocale);
res.updateConfiguration(newLocaleConfig, res.getDisplayMetrics());

请务必检查不同API级别的实现!