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

时间:2019-04-24 02:10:35

标签: java android

我有一个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());

        }
    }`

1 个答案:

答案 0 :(得分:0)

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

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