Gebietsschema: onConfigurationChanged wird nicht aufgerufen
Ich möchte, dass sich meine Sprache dynamisch ändert, und ich versuche, onConfigurationChanged zu verwenden, aber es wird nicht aufgerufen. Ich habe eine MainActivity, die meine Aktionsleiste und meinen Viewpager erstellt. Der Rest meiner Seiten sind Fragmente. In meinem SettingsFragment habe ich eine Schaltfläche, um die Sprache auf Französisch umzustellen.
langChange.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View vi) {
MainActivity main = (MainActivity)getActivity();
main.langChange();
}
});
Dann habe ich in meiner MainActivity
@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
}
DasonConfigurationChanged
wird nicht angerufen. In meinem Manifest habe ich:
<activity android:name="MainActivity" android:screenOrientation="portrait" android:configChanges="locale"></activity>
Ich habe versucht, eine oder alle dieser Optionen hinzuzufügenorientation|keyboardHidden|screenSize
ohne erfolg.
Der Grund für all dies ist, dass ich den actionBar-Text und den gesamten anderen Text ändern möchte, sobald ich auf die Schaltfläche klicke. Ich habe eine separate Textdatei für Französisch.
Jede Hilfe wäre toll.