3

我们的应用程序独立于设备设置强制执行特定的语言环境。在正确翻译字符串之前,这是一个临时决定。

    Configuration config = sContext.getResources().getConfiguration();
    if (!sDefaultLocale.equals(config.locale)) {
            Locale.setDefault(sDefaultLocale);
            config.locale = sDefaultLocale;
            sContext.getResources().updateConfiguration(config,
                    sContext.getResources().getDisplayMetrics());

    }

不幸的是,强制区域设置不适用于应用程序小部件,小部件仍使用设备的区域设置。我正在寻找一种使应用程序小部件采用相同语言环境的方法。

4

1 回答 1

2

更改区域设置后,您需要更新应用小部件。重要的是,在创建新的 RemoteViews 时,您需要使用 remoteViews.setTextViewText(..)以编程方式设置所有字符串。

如果应用小部件字符串资源是在 XML (android:text="@string/...") 中定义的 - 在设置新的语言环境后它们不会被更改。

于 2015-12-14T06:57:49.650 回答