Android ändern und standardmäßig gesetztes Gebietsschema innerhalb der app

Arbeite ich an Globalisierung der Android-app. Ich habe, um Optionen zu wählen, verschiedene Sprachen innerhalb der app. Ich bin mit dem folgenden code in meiner Tätigkeit (HomeActivity), wo ich die option zum ändern des Gebietsschemas

Configuration config = new Configuration();
config.locale = selectedLocale; //set accordingly 
//eg. if Hindi then selectedLocale = new Locale("hi");
Locale.setDefault(selectedLocale); //has no effect
Resources res = getApplicationContext().getResources();
res.updateConfiguration(config, res.getDisplayMetrics());

Dies funktioniert gut, solange gibt es keine änderungen in der Konfiguration wie Bildschirm-rotation, wo das Gebietsschema standardmäßig auf den android-system-Ebene locale anstatt die locale-Einstellung durch den code.

Locale.setDefault(selectedLocale);

Einer Lösung, die ich denken kann, ist die Persistenz der vom Benutzer ausgewählte Gebietsschema mit SharedPreferences und in jeder activity onCreate () - Methode haben die locale setzen, um der permanenten Lokalisierung der onCreate() wird aufgerufen, wieder und wieder für jede Konfiguration zu ändern. Gibt es einen besseren Weg, dies zu tun, so dass ich don ' T haben, es zu tun, die in jeder Aktivität.

Im Grunde, was ich will, ist, dass - Sobald ich ändern/einstellen, um einige locale in meinem HomeActivity ich möchte, dass alle Aktivitäten innerhalb meiner app zu verwenden, die locale selbst, unabhängig von änderungen an der Konfiguration vornehmen....es sei denn, und bis Sie geändert werden, um andere locale aus dem app-HomeActivity, bietet Optionen für Gebietsschema ändern.

InformationsquelleAutor der Frage Xavier DSouza | 2014-03-14

Schreibe einen Kommentar