如何更改整个应用程序语言?

时间:2018-03-22 08:06:19

标签: android android-layout android-fragments

我正在创建一个应用程序,其中我想要一个页面,我在其中显示语言选择页面。到目前为止,我已经包括英语,印地语和马拉地语,英语设置为默认值。

我的问题是:

  1. 如何在选定语言中更改整个应用程序语言?

  2. 每当我重新打开应用程序时选择语言后,它会提供以前选择的语言吗?

2 个答案:

答案 0 :(得分:3)

将所有文本放在String文件中。对于每种语言,创建单独的String文件(Deutsch values-de / strings.xml,法语值-fr / strings.xml) 而您需要更改语言调用以下功能。对于英语语言,将" en" 设置为另一组相应的键

科特林

val config = resources.configuration
val locale = Locale("en")
Locale.setDefault(locale)
config.locale = locale
resources.updateConfiguration(config, resources.displayMetrics)

Android Java

Configuration config = GetBaseContext().getResources().getConfiguration();
 Locale locale = new Locale("en");
 Locale.setDefault(locale);
 config.locale = locale;
 GetBaseContext().getResources().updateConfiguration(config, 
            GetBaseContext().getResources().getDisplayMetrics());

答案 1 :(得分:0)

 String lang= "en";

 public void changeLang(String lang) {
        Configuration config = getBaseContext().getResources().getConfiguration();
        if (!"".equals(lang) && !config.locale.getLanguage().equals(lang)) {

            locale = new Locale(lang);
            Locale.setDefault(locale);
            Configuration conf = new Configuration(config);
            conf.locale = locale;
            getBaseContext().getResources().updateConfiguration(conf, getBaseContext().getResources().getDisplayMetrics());
        }
    }

尝试这种方法......这肯定会有效.. 当您选择首选语言时,请在此方法中传递所选语言代码,这将更改整个应用程序的语言。