未在Android 5.0 Lollipop中以编程方式设置区域设置

时间:2014-11-27 06:46:17

标签: android android-5.0-lollipop

我的应用程序根据应用程序中的选定语言设置区域设置。到Kitkat我的代码工作正常。 更新到Lollipop后,未设置区域设置。在这里,我粘贴我的代码以设置区域设置..

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

4 个答案:

答案 0 :(得分:6)

您必须更改区域设置初始化的方式。由此:

Locale locale = new Locale("de_DE");

到此:

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

https://stackoverflow.com/a/27490553/2659558

查看完整回复

干杯!

答案 1 :(得分:1)

您可以使用以下代码将语言环境设置为应用程序。

Locale locale = new Locale("de", "DE");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);

答案 2 :(得分:0)

结帐Lollipop Set Default local does not work尝试仅使用语言代码" de"而不是" de_DE"。

答案 3 :(得分: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);