Изменение языка приложения после входа в систему - Android - PullRequest
0 голосов
/ 18 марта 2020

У меня проблема с моим android проектом. Я пытаюсь установить язык в приложении, начиная со значения, полученного из моего REST-запроса. Вот мой код из класса Controller:

public void onResponse(Call<UserProfile> call, Response<UserProfile> response) {
            UserProfile userProfile = response.body();
            OMSActivity.initLanguage(userProfile);
        }

Вот мой код из класса Activity:

public void changeLang(Context v, String language) {
    Locale locale = new Locale(language);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.setLocale(locale);
    v.getResources().updateConfiguration(config, v.getResources().getDisplayMetrics());
}

public void initLanguage(UserProfile userProfile) {
    switch(userProfile.getLanguage()) {
        case "en": changeLang(this,"en"); break;
        case "de": changeLang(this, "de"); break;
    }

}

Запрос выполнен успешно, и ответ заполнен языковой строкой, но каким-то образом язык не изменяется.

Вот onCreate класса Activity:

super.onCreate(savedInstanceState);
this.omsController = new omsController(this);
omsController.getUserProfile();
setContentView(R.layout.activity_oms);

В другом упражнении язык можно изменить при нажатии кнопки. Удивительно, но там все отлично работает.

...