Java 无法以编程方式更改Oreo中的区域设置
我需要将我的应用程序语言从英语改为印地语。我在安卓8.0中无法做到这一点Java 无法以编程方式更改Oreo中的区域设置,java,android,localization,locale,Java,Android,Localization,Locale,我需要将我的应用程序语言从英语改为印地语。我在安卓8.0中无法做到这一点 public static void setUpLanguage(SqrrlApplication application, String languageIsoCode) { try { Locale locale = new Locale(languageIsoCode); Locale.setDefault(locale); Re
public static void setUpLanguage(SqrrlApplication application, String languageIsoCode) {
try {
Locale locale = new Locale(languageIsoCode);
Locale.setDefault(locale);
Resources res = application.getResources();
Configuration config = new Configuration(res.getConfiguration());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
config.setLocale(locale);
application.getApplicationContext().createConfigurationContext(config);
}else{
config.locale = locale;
}
res.updateConfiguration(config, res.getDisplayMetrics());
} catch (Exception e) {
e.printStackTrace();
}
}
请注意:但是,如果我从设备设置更改设备语言,我的应用程序将更改为印地语版本
我有'values hi'文件夹,在res中有印地语字符串
谢谢。应用程序重新启动时,您的区域设置是否会发生更改?@Gautam否,它不会影响我重新启动应用程序的时间。即使我使用相同的代码更新区域设置,但我的所有活动都扩展了BaseActivity并覆盖了attachBaseContext方法。在这个函数中,我调用super.attachBaseContext({通过调用setUpLanguage方法返回最初传递的上下文})。我需要使用attachBaseContext方法吗?