Я хочу программно изменить язык.Как программно менять язык?
Итак, я создал два xml-файла.
values-it
-->string.xml
values-en
-->string.xml
Это код в MainActivity изменить язык всего приложения:
// ИТАЛЬЯНСКИЙ
Resources res = getApplicationContext().getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("it");
res.updateConfiguration(conf, dm);
// ENGLISH
Resources res2 = getApplicationContext().getResources();
DisplayMetrics dm2 = res2.getDisplayMetrics();
android.content.res.Configuration conf2 = res2.getConfiguration();
conf2.locale = new Locale("en");
res2.updateConfiguration(conf2, dm2);
Теперь, если я поставил на английском языке (например) код выполняется без ошибок, но метка не меняет его текст.
Если я изменил ориентацию своего устройства, метка правильно изменит его текст.
Теперь, как я могу изменить свой код, чтобы автоматически обновлять ярлык?
попытайтесь позвонить вашему коду в onResume(). – Mehta
Привет, здесь вы являетесь ссылкой о том, как перезагрузить изменения, не закрывая действия: http://stackoverflow.com/questions/2644377/changing-locale-force-activity-to-reload-resources –
Возможный дубликат [How для обновления активности после изменения языка (локали) внутри приложения] (http://stackoverflow.com/questions/8049207/how-to-refresh-activity-after-changing-language-locale-inside-application) –