Язык: onConfigurationChanged не вызывается
Я хочу, чтобы мой язык изменялся динамически, и я пытаюсь использовать onConfigurationChanged, но он не вызывается. У меня есть MainActivity, которая создает панель действий и панель просмотра. Остальные мои страницы являются фрагментами. В моем SettingsFragment у меня есть кнопка, чтобы переключить язык на французский.
langChange.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View vi) {
MainActivity main = (MainActivity)getActivity();
main.langChange();
}
});
Тогда в моей основной деятельности у меня есть
@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());
}
}
public void langChange(){
if(currentLanguage == FRENCH_LANGUAGE){
locale = new Locale("en");
Locale.setDefault(locale);
Configuration c = getBaseContext().getResources().getConfiguration();
c.locale = locale;
getBaseContext().getResources().updateConfiguration(c,getBaseContext().getResources().getDisplayMetrics());
currentLanguage = "English";
}
else if(currentLanguage == ENGLISH_LANGUAGE){
locale = new Locale("fr");
Locale.setDefault(locale);
Configuration c = getBaseContext().getResources().getConfiguration();
c.locale = locale;
getBaseContext().getResources().updateConfiguration(c,getBaseContext().getResources().getDisplayMetrics());
currentLanguage = "French";
}
actionBar.setSelectedNavigationItem(actionBar.getTabCount() - 1); //This just puts it back to the settings tab
}
onConfigurationChanged
не вызывается. В моем манифесте я имею:
<activity android:name="MainActivity" android:screenOrientation="portrait" android:configChanges="locale"></activity>
Я попытался добавить один или все эти параметрыorientation|keyboardHidden|screenSize
без успеха.
Причина всего этого заключается в том, что я хочу изменить текст actionBar и весь другой текст, как только я нажму кнопку. У меня есть отдельный файл строк для французского языка.
Любая помощь будет отличной.