Etikett:
Funktion:
App-Nutzer stellen die app-Sprache entsprechend ihre Spracheinstellungen. Die Spracheinstellungen sind für diese app nur und behalten die bisherigen Start-Einstellungen beim nächsten Start die app.
Sprache zu aktualisieren:
public static void changeAppLanguage(Resources resources, String lanAtr) { Configuration config = resources.getConfiguration(); DisplayMetrics dm = resources.getDisplayMetrics(); if (lanAtr.equals("ru_RU")) { config.locale = new Locale("ru", "RU"); } else if (lanAtr.equals("en_US")) { config.locale = Locale.ENGLISH; } else if (lanAtr.equals("pt")) { config.locale = new Locale("pt"); } else { config.locale = Locale.getDefault(); } resources.updateConfiguration(config, dm); }SharePreferences wird in der Sprache Einstellungen gespeichert:
Sharences sharedPreferences = getActivity().getSharedPrefeivity().getPackageName(), 0);sharedPreferences.edit().putString("language", lanAtr).commit();
Nachdem die Sprache aktualisiert wird, werden die Spracheinstellungen nicht für Aktivität wirksam, die bisher erschienen und ist immer noch lebendig. Sie können die Sprache im Zeit wirksam, indem Sie die entsprechende Aktivität neu starten lassen.
MainActivity ist die Aktivität it.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP) Sie neu starten möchten. It.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); (GetActivity). StartActivity (it); }
HINWEIS:
- Aus der Erfahrung Benutzersicht, die Spracheinstellungen Feature-Portal in den ersten paar Schichten der App platziert wird, wenn der Eingang zu tief, so dass Benutzer nicht schnell das Sprachenportal Einstellungen finden, und wenn Sie wollen, zu reden, die Anwendung neu starten, wird im Allgemeinen der Benutzerdatensatz Verhalten Betrieb mehr lästig sein.
- Es gibt mehrere Möglichkeiten, um die entsprechende Aktivität neu starten:
- Wenn ein Benutzer eine Spracheinstellung, die erfordert zu viele Hierarchien oder andere Verhaltensweisen, die die APP eingibt zu speichern, bevor Sie die Spracheinstellungen zu manipulieren will, das kann durch Rundfunk erfolgen (SendBroadcast ()), wechselt die Sprache, sowie für alle Aktivitäten erhalten die Sendung ( BroadcastReceivers) Neustart alle Operationen;
- Wenn der Benutzer die Sprache festlegen, die app geht zurück auf das home-Verzeichnis, das viel einfacher ist, rufen Sie einfach die oben beschriebene Neustart ()-Methode.
SingleTask Aktion erneut zu starten: Wenn Ihre Start-Aktivität SingleTask und wird neu gestartet, wie oben, die Sprache noch nicht wirksam. Was ist mit dieser Situation? Es kann gelöst werden, durch Verständnis und die Nutzung seines Lebenszyklus, Aktivität ruft die Methode OnNewIntent (), wenn die Aktivität des Grundstücks SingleTask zurück geschnitten wird. Sie können die Methode überschreiben. Hier ein Workaround ist, sich selbst als erster durchs Ziel und dann auch selbst neu starten.
Absicht ich = neue Absicht (, MainActivity.class); StartActivity (i); OverridePendingTransition (0, 0); } Else {//Other Logik}}Fazit: APP-Sprache-Einstellungen sind nicht komplex, vor allem, wie Sprache setzen Einstellungen in einer fristgerechten Weise, mit Aktivität Neustart wirksam und so weiter übertragen.
Android lernen – Android App Sprachumschaltung Funktionen