【发布时间】:2017-06-14 14:51:38
【问题描述】:
我的应用支持 3 种语言,用户可以在这些选项之间进行选择。 当我将设备区域设置更改为我支持的语言之一时,UI 语言会自动更改,问题是如果用户已经在应用程序中选择了我支持的 3 种语言之一,我不希望它更改。
如何防止这种自动语言更改?
【问题讨论】:
-
你不应该。使用手机的区域设置,没有充分的理由覆盖它。
标签: android
我的应用支持 3 种语言,用户可以在这些选项之间进行选择。 当我将设备区域设置更改为我支持的语言之一时,UI 语言会自动更改,问题是如果用户已经在应用程序中选择了我支持的 3 种语言之一,我不希望它更改。
如何防止这种自动语言更改?
【问题讨论】:
标签: android
我所做的是更新我的首选项中的一个标志,以指示用户是否更改了语言,并在 Activity 的onResume() 上检查其值以重新启动它。
在 Activity 的 onCreate() 上,我将语言更新为存储的首选项。
【讨论】:
当用户在应用程序中选择时,将语言环境保存到 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);
【讨论】: