Невозможно программно изменить языковой стандарт в Oreo

У меня есть требование изменить язык моего приложения с английского на хинди. Я не могу сделать это в Android 8.0.

public static void setUpLanguage(SqrrlApplication application, String languageIsoCode) {
        try {
            Locale locale = new Locale(languageIsoCode);
            Locale.setDefault(locale);
            Resources res = application.getResources();
            Configuration config = new Configuration(res.getConfiguration());
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                config.setLocale(locale);
                application.getApplicationContext().createConfigurationContext(config);
            }else{
                config.locale = locale;
            }
            res.updateConfiguration(config, res.getDisplayMetrics());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Обратите внимание: однако, если я изменю язык своего устройства в настройках устройства, мое приложение изменится на версию на хинди.

У меня есть папка values-hi в res со строками на хинди.

Спасибо.

Возможный дубликат Как изменить язык приложения Android O / Oreo / api 26 и это также stackoverflow.com/questions/39705739/…

AskNilesh 16.03.2018 11:01

меняется ли ваш языковой стандарт при перезапуске приложения?

Gautam 16.03.2018 11:01

@Gautam Нет, это не влияет, когда я перезапускаю приложение.

Manish Agrawal 16.03.2018 11:06

даже я использую тот же код для обновления локали, но все мои действия расширяют BaseActivity и переопределяют метод attachBaseContext. Внутри этого я вызываю super.attachBaseContext ({вызывая метод setUpLanguage, который возвращает контекст, который передается изначально}).

Gautam 16.03.2018 11:15

Нужно ли мне использовать метод attachBaseContext?

Manish Agrawal 16.03.2018 11:27

да, попробуйте переопределить его внутри активности

Gautam 16.03.2018 11:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
6
1 217
0

Другие вопросы по теме