Android modifier et définissez les paramètres régionaux par défaut dans l'application

Je suis en train de travailler sur la mondialisation de l'application Android. J'ai pour fournir des options pour choisir les différents paramètres régionaux à partir de l'application. Je suis en utilisant le code suivant dans mon activité (HomeActivity) où j'fournir option pour modifier les paramètres régionaux

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());

Cela fonctionne bien tant qu'il n'y a pas de modifications de configuration comme la rotation de l'écran où la locale par défaut pour le système android niveau locale plutôt que sur les paramètres régionaux définis par le code.

Locale.setDefault(selectedLocale);

Une solution je pense est de persister à l'utilisateur paramètres régionaux sélectionnés à l'aide de SharedPreferences et dans chaque activité du onCreate() méthode les paramètres régionaux définis à l'persisté paramètres régionaux dans le onCreate() est appelée, encore et encore, chaque changement de configuration. Est-il une meilleure façon de le faire alors que je n'ai pas à le faire dans toutes les activités.

Fondamentalement, ce que je veux, c'est que - une Fois que j'ai modifier/définir certains paramètres régionaux dans mon HomeActivity, je veux toutes les activités au sein de mon application à utiliser que locale elle-même, indépendamment de tout changement de configuration....à moins que et jusqu'à ce qu'il soit changé pour d'autres paramètres régionaux à partir de l'app HomeActivity qui fournit des options permettant de modifier les paramètres régionaux.

Des Solutions peuvent être trouvées dans les Définir les paramètres Régionaux par programmation.

OriginalL'auteur Xavier DSouza | 2014-03-14