Wir haben eine Android-App, die als Client für ein Remote-PC-Programm fungiert. Wir möchten eine Funktion hinzufügen, damit der PC die Android-App anweist, ihr Gebietsschema zur Laufzeit zu ändern, d. H. Die App zu starten; stelle es in Kommunikation mit dem PC; Irgendwann später sagt der PC der App, dass sie zum Beispiel auf Spanisch oder Chinesisch wechseln soll.Ändern Sie das Gebietsschema zur Laufzeit?
Wir haben bereits alle Layout- und String-Ressourcen für ihre jeweiligen Ländereinstellungen eingerichtet. Unsere App ist die einzige App, die der Nutzer sieht, es ist also egal, ob der Rest des Geräts auf Englisch bleibt.
Es gibt einen anderen Thread bei Change language programmatically in Android, aber es scheint nicht zu einer Schlussfolgerung zu kommen.
kann ich setzen. . .
Locale locale = new Locale(sTheNewLocale);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
. . . in onCreate() vor der setContentView() aber das hilft nicht wirklich, wenn ich das Gebietsschema ändern möchte, nachdem mein Bildschirm ausgeführt wird. Gibt es eine Möglichkeit, die Inhaltsansicht neu zu laden, nachdem die Aktivität bereits ausgeführt wurde? So ist gibt es keine praktische Möglichkeit, Gebietsschemas on-the-Fly zuverlässig zu ändern, oder muss ich meinem Chef sagen, dass es nicht getan werden kann, außer das gesamte Gerät auf das neue Gebietsschema vor dem Start der App zu setzen?
Die Methode 'updateConfiguration()' ist veraltet. Hier ist eine nicht veraltete Lösung: http://stackoverflow.com/questions/40221711/android-context-getresources-updateconfiguration-deprecated – wilkas
config.locale wird auch abgeschrieben –
@HasanAliKaraca, die in der verknüpften Antwort auch abgedeckt ist. – weston