更改列表首选项时刷新首选项片段

时间:2015-10-12 17:30:32

标签: java android android-fragments

我正在设计一个支持3种语言的应用程序。我添加了一个选项来选择偏好片段中的语言。从ListPreference中选择语言后,首选项片段中的区域设置不会立即更改 但是,如果我导航回MainActivity并返回SettingsActivity,则区域设置也会在首选项屏幕中更改。

我需要一个解决方案,一旦ListPreference值发生变化(即选择语言时),就会在PreferenceFragment中更改区域设置。

任何帮助表示感谢。

更新: 现在我使用自定义列表首选项类CustListPreference扩展ListPreference并实现DialogInterface.OnClickListener

我在列表首选项中定义了一个OK按钮。现在在按下确定的OnClick方法中,我正在使用

更新配置

getContext().getResources().updateConfiguration(config, null);,但没有运气。视图未更新。

有人请建议我如何刷新活动或重启onClick按钮。

1 个答案:

答案 0 :(得分:0)

更改区域设置后,您需要重新启动活动。

或尝试更新配置,类似:

public void changeLanguage(Configuration configuration) {
    configuration.locale = Locale.ENGLISH;//or other locale

    Locale.setDefault(configuration.locale);
    getBaseContext().getResources().updateConfiguration(configuration, null);
}