在区域设置更改后阻止应用程序语言更改

时间:2017-06-14 14:51:38

标签: android

我的应用支持3种语言,用户可以选择这些选项。 当我将设备区域设置更改为我支持的某种语言时,UI语言会自动更改,问题是如果用户已经在应用程序中选择了我支持的3种语言之一,我就不希望它更改。

如何阻止此自动语言更改?

2 个答案:

答案 0 :(得分:0)

当用户在应用中选择它时,将语言环境保存到SharedPreference。并在代码中添加默认的支持区域设置。

String userLocale = App.getSharedPreferences().getString(SELECTED_LOCALE,"your_default_string");

在Application.class onCreate方法中添加以下块:

Locale locale = new Locale(userLocale) // 
Resources resources = getResources();
Configuration configuration = resources.getConfiguration();
configuration.setLocale(locale);

答案 1 :(得分:0)

我所做的是更新我的偏好设置上的标记,以指示用户是否更改了语言并在活动onResume()上检查其值以重新启动它。

On Activity onCreate()我将语言更新为存储的首选项。