我正在设计一个支持3种语言的应用程序。我添加了一个选项来选择首选片段中的语言。在从ListPreference中选择语言之后,首选项片段中的区域设置不会立即改变。
但是,如果我导航回MainActivity并返回到SettingsActivity,那么区域设置也会在首选屏幕中被更改。
我需要一个解决方案,一旦PreferenceFragment值发生变化(即选择语言时),就会更改ListPreference中的区域设置。
任何帮助都很感激。
UPDATE:现在我使用自定义列表首选项类CustListPreference扩展ListPreference并实现DialogInterface.OnClickListener
我在list首选项中定义了一个OK按钮。现在,在OnClick方法中,当按ok时,我将使用
getContext().getResources().updateConfiguration(config, null);,但没有运气。视图没有更新。
有人请建议我如何刷新活动或重新启动onClick的OK按钮。
发布于 2015-10-12 17:37:15
在更改区域设置后,您需要重新启动活动。
或者尝试更新配置,如下所示:
public void changeLanguage(Configuration configuration) {
configuration.locale = Locale.ENGLISH;//or other locale
Locale.setDefault(configuration.locale);
getBaseContext().getResources().updateConfiguration(configuration, null);
}https://stackoverflow.com/questions/33086968
复制相似问题