12 Stimmen

wie man die Sprache in einer Android-Anwendung erzwingt

Mögliches Duplikat:
Ändern des Gebietsschemas in der App selbst

in meiner Anwendung muss ich Sprache "erzwingen" sagen wir, dass ich Locale in Englisch als Standard Polnisch und Finnisch haben, nach diese Stelle Ich hatte die Funktion erstellt, die auch unten gepostet wurde, die Funktion wird in createActivity() aufgerufen, aber das Problem ist, dass es nicht funktioniert .... irgendeine Idee warum? Irgendwelche Vorschläge?

private void setLocale(String localeCode){
        Locale locale = new Locale(localeCode);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    }

12voto

Sergii Rudchenko Punkte 5150

Hier ist, was ich bis jetzt habe. Ich weiß, dass diese Frage geklärt ist, aber meine Lösung ist einfacher und kompakter. Es sind keine weiteren Änderungen erforderlich, kein Android:configurationChanges-Attribut für alle Aktivitäten in Ihrem Manifest.

public class SigmaMiddleEastApplication extends PPGApplication {

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        newConfig.locale = Locale.ENGLISH;
        super.onConfigurationChanged(newConfig);

        Locale.setDefault(newConfig.locale);
        getBaseContext().getResources().updateConfiguration(newConfig, getResources().getDisplayMetrics());
    }
}

VORSICHT: Dies kann zu Problemen führen: Was könnte dazu führen, dass sich eine Android-Aktivität bei der Rückkehr von der Kamera unendlich oft neu startet?

3voto

Sunil Kumar Sahoo Punkte 51391

Fügen Sie im Manifest (für jede Aktivität) Folgendes hinzu:

android:configChanges="locale"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X