在Android 5.0 Lollipop中程序化地设置Locale失败

3

我的应用程序根据应用程序中选择的语言设置区域设置。在Kitkat之前,我的代码运行良好。 升级到Lollipop后,区域设置未设置。这里是我设置区域设置的代码...

Locale locale = new Locale("de_DE");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);
4个回答

7
你需要改变区域设置的初始化方式。从这个开始:
Locale locale = new Locale("de_DE");

转换为:

String language = "de";
String country = "DE";
Locale locale = new Locale(language , country);

点击此处查看完整回答:https://dev59.com/K4Xca4cB1Zd3GeqPIG_W#27490553

干杯!


1
你可以使用以下代码将语言环境设置到应用程序中。
Locale locale = new Locale("de", "DE");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);

0

0

你可以使用这段代码:

 public static final String COUNTRY_EN = "GB";
  public static final String LANG_EN = "en";


country=COUNTRY_EN ;
lang=LANG_EN ;
Locale myLocale = new Locale(lang, country);
Locale.setDefault(myLocale);
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.setLayoutDirection(myLocale);
conf.locale = myLocale;
res.updateConfiguration(conf, dm);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接