我们的应用程序会对其执行某种区域设置,而与设备设置无关。这是一个临时的决定,直到字符串被正确翻译。
Configuration config = sContext.getResources().getConfiguration();
if (!sDefaultLocale.equals(config.locale)) {
Locale.setDefault(sDefaultLocale);
config.locale = sDefaultLocale;
sContext.getResources().updateConfiguration(config,
sContext.getResources().getDisplayMetrics());
}
不幸的是,强制语言环境不适用于app小部件,小部件仍然使用设备的区域设置。我正在寻找一种方法来使应用程序小部件采用相同的区域设置。
答案 0 :(得分:1)
更改区域设置后,您需要更新应用小部件。重要的是,在创建新的RemoteView时,您需要使用remoteViews.setTextViewText(..)设置所有字符串以编程方式。
如果app小部件字符串资源是用XML定义的(android:text =" @string /...") - 在设置新的语言环境后不会更改它们。