在android中,当用户更改设备的语言时,我应用中的每个资源都会更改为与新语言的语言环境相关的资源。我们称之为A.
现在在我的Android应用程序中,用户可以选择“app”(而不是设备)的语言,并且每个资源都需要根据新语言进行更改。在我的一些活动中,语言和语言环境发生了变化,一切都像A一样。但在其他一些活动中(例如当用户处于密码活动时,用户输入密码进入应用程序所需的第一个活动),每个资源都与设备的语言相同。
如何完全强制我的应用程序更改语言/区域设置,就像Android在A中所做的那样?
我应该补充一点,当我更改设备语言时,密码活动也会改变语言。
答案 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级别的实现!