Языковой стандарт не установлен программно в 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);

person NSK    schedule 27.11.2014    source источник


Ответы (4)


Вы должны изменить способ инициализации локали. Из этого:

Locale locale = new Locale("de_DE");

к этому:

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

Ознакомьтесь с полным ответом здесь https://stackoverflow.com/a/27490553/2659558

Ваше здоровье!

person Marco HC    schedule 15.12.2014

вы можете установить локаль для приложения, используя следующий код.


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

Проверьте Lollipop Set local по умолчанию не работает Попробуйте использовать только язык код "de", а не "de_DE".

person terrbear    schedule 12.12.2014

вы можете использовать этот код:

 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);
person Milad Mohamadi    schedule 03.08.2019