Я хочу повернуть телефон и сохранить язык. У меня есть папки, значения, значения - en и значения - ч . В каждой деятельности у меня есть
android:configChanges="keyboardHidden|orientation|locale"
и в каждом файле Activity.java , которое у меня есть
private Locale locale = null;
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (locale != null)
{
newConfig.locale = locale;
Locale.setDefault(locale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}
и в onCreate
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Configuration config = getBaseContext().getResources().getConfiguration();
String lang = settings.getString("language","en");
if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
{
locale = new Locale(lang);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
Это работает, пока я не поверну свой телефон - приложение все еще работает, кнопки и все в порядке - но язык становится странным - иногда это мой язык (час), иногда это (en) ...
Что еще мне нужно добавить?