Android 防止在区域设置更改后更改应用程序语言
我的应用程序支持3种语言,用户可以在这些选项中进行选择。 当我将设备区域设置更改为我支持的语言之一时,UI语言会自动更改,问题是如果用户已经在应用程序中选择了我支持的3种语言之一,我不希望它更改Android 防止在区域设置更改后更改应用程序语言,android,Android,我的应用程序支持3种语言,用户可以在这些选项中进行选择。 当我将设备区域设置更改为我支持的语言之一时,UI语言会自动更改,问题是如果用户已经在应用程序中选择了我支持的3种语言之一,我不希望它更改 如何防止这种自动语言更改?当用户在应用程序中选择区域设置时,将其保存到SharedReference。并在代码中添加默认支持的语言环境 String userLocale = App.getSharedPreferences().getString(SELECTED_LOCALE,"your_defau
如何防止这种自动语言更改?当用户在应用程序中选择区域设置时,将其保存到SharedReference。并在代码中添加默认支持的语言环境
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);
我所做的是在我的首选项上更新一个标志,以指示用户是否更改了语言,并在活动的
onResume()
上检查其值以重新启动它
在活动的
onCreate()
上,我将语言更新为存储的首选项。您不应该这样做。使用手机的区域设置,没有很好的理由覆盖它。谢谢,我有这一点,我的意思是设置我的区域设置,然后用户最小化我的应用程序,更改设备区域设置并恢复我的操作application@Sharas将其添加到活动中的onConfigurationChanged()中