Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法以编程方式更改Oreo中的区域设置_Java_Android_Localization_Locale - Fatal编程技术网

Java 无法以编程方式更改Oreo中的区域设置

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

我需要将我的应用程序语言从英语改为印地语。我在安卓8.0中无法做到这一点

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方法吗?