Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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 语言切换,当用户选择特定语言形式选项菜单时。它应该保持当前本地,直到用户再次更改它_Java_Android - Fatal编程技术网

Java 语言切换,当用户选择特定语言形式选项菜单时。它应该保持当前本地,直到用户再次更改它

Java 语言切换,当用户选择特定语言形式选项菜单时。它应该保持当前本地,直到用户再次更改它,java,android,Java,Android,我有一个android项目,它在一个应用程序中支持多个地区,如印地语、英语、乌尔都语等。当我手动选择当地语言时,它可以正常工作,但问题是当我重新启动应用程序时,它会获得默认的当地语言,并且在屏幕上旋转 在手动更改之前,我不想更改本地文件。 在主活动内的Java类中应该做什么?我需要创建一个新的Java类吗 以下是我在主活动中的语言配置代码: private void setAppLocale (String LocaleCode){ Resources res=getReso

我有一个android项目,它在一个应用程序中支持多个地区,如印地语、英语、乌尔都语等。当我手动选择当地语言时,它可以正常工作,但问题是当我重新启动应用程序时,它会获得默认的当地语言,并且在屏幕上旋转

在手动更改之前,我不想更改本地文件。 在主活动内的Java类中应该做什么?我需要创建一个新的Java类吗

以下是我在主活动中的语言配置代码:

private  void  setAppLocale (String LocaleCode){
        Resources res=getResources();
        DisplayMetrics dm = res.getDisplayMetrics();
        Configuration conf = res.getConfiguration();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            conf.setLocale(new Locale(LocaleCode));
        }else {
            conf.locale = new Locale(LocaleCode.toLowerCase());
        }
        res.updateConfiguration(conf, dm);

    }
    private Locale locale = null;

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if (locale != null) {
            Locale.setDefault(locale);
            Configuration config = new Configuration(newConfig);
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

        }
    }`

我建议您在选择语言时手动将其存储在
SharedReferences


默认情况下,在您的
SharedReferences
中,它将是您的本地语言

我建议您在选择语言时手动将其存储在
SharedReferences

默认情况下,在您的
SharedReferences
中,它将是您的本地语言