我正在设计一个支持3种语言的应用程序。我添加了一个选项来选择偏好片段中的语言。从ListPreference
中选择语言后,首选项片段中的区域设置不会立即更改
但是,如果我导航回MainActivity
并返回SettingsActivity
,则区域设置也会在首选项屏幕中更改。
我需要一个解决方案,一旦ListPreference值发生变化(即选择语言时),就会在PreferenceFragment中更改区域设置。
任何帮助表示感谢。
更新:
现在我使用自定义列表首选项类CustListPreference
扩展ListPreference
并实现DialogInterface.OnClickListener
我在列表首选项中定义了一个OK按钮。现在在按下确定的OnClick
方法中,我正在使用
getContext().getResources().updateConfiguration(config, null);
,但没有运气。视图未更新。
有人请建议我如何刷新活动或重启onClick按钮。
答案 0 :(得分:0)
更改区域设置后,您需要重新启动活动。
或尝试更新配置,类似:
public void changeLanguage(Configuration configuration) {
configuration.locale = Locale.ENGLISH;//or other locale
Locale.setDefault(configuration.locale);
getBaseContext().getResources().updateConfiguration(configuration, null);
}