Я использую этот метод ниже, чтобы изменить язык приложения, передав код языка как строку.
Когда я меняю ориентацию экрана, язык зависит от языка по умолчанию, и все представления тоже сбрасываются.Сохраните язык при повороте экрана
public String setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, Login.class);
startActivity(refresh);
finish();
return lang;
}
Я пытался использовать onSaveInstanceState
и onRestoreInstanceState
, но я не знаю, как сделать все эти методы работают вместе.
Сохраните текущий язык в постоянном хранилище и реализуйте метод onOrientationChanged в своем коде и в нем проверьте соответствующий язык и соответствующим образом обновите –
Сохраните текущий язык в SharedPreferences и когда ориентация экрана изменила язык заданий из SharedPreferences Также проверьте: http: // stackoverflow .com/questions/2324418/android-принудительный-locale-reset-on-orientation-changes- –