У меня проблема с моим 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);
В другом упражнении язык можно изменить при нажатии кнопки. Удивительно, но там все отлично работает.