2017-06-14 5 views
1

Meine App unterstützt 3 Sprachen und der Benutzer kann zwischen diesen Optionen wählen. Wenn ich das Gebietsschema des Geräts in eine meiner unterstützten Sprachen ändere, ändert sich die Sprache der Benutzeroberfläche automatisch. Das Problem ist, dass ich nicht möchte, dass sich die Sprache ändert, wenn der Benutzer bereits eine meiner 3 unterstützten Sprachen in der App auswählt.Verhindern Sie die Änderung der App-Sprache nach der Gebietsschemaänderung

Wie kann ich diesen automatischen Sprachwechsel verhindern?

+0

Sie sollten nicht. Verwenden Sie das Gebietsschema des Telefons, es gibt keinen Grund, es zu überschreiben. –

Antwort

0

Speichern Sie das Gebietsschema in SharedPreference, wenn der Benutzer es in der App auswählt. Und fügen Sie in Ihrem Code standardmäßig unterstützte Locale hinzu.

String userLocale = App.getSharedPreferences().getString(SELECTED_LOCALE,"your_default_string"); 

In Sie Application.class onCreate Methode, um diesen Block hinzufügen:

Locale locale = new Locale(userLocale) // 
Resources resources = getResources(); 
Configuration configuration = resources.getConfiguration(); 
configuration.setLocale(locale); 
+0

Danke, ich habe das, was ich meinte, ist ein Szenario, wo mein Gebietsschema eingestellt ist, und dann der Benutzer minimiert meine App und ändert das Gerät Gebietsschema und setzt meine Anwendung fort – Sharas

+0

@Sharas fügen Sie onConfigurationChanged() in Ihrer Aktivität –

0

Was ich ist ein Flag auf meine Vorlieben aktualisiert wurde, um anzuzeigen, wenn der Benutzer die Sprache geändert und seinen Wert überprüfen auf Aktivität des onResume() um es neu zu starten, wenn es so war.

Auf Aktivität onCreate() Ich aktualisiere die Sprache auf die gespeicherte Präferenz.

Verwandte Themen