2010-10-16 15 views
0

Supposons une application qui possède des ressources brutes basées sur les paramètres régionaux. Mais les ressources ne sont pas "correnspondantes" les unes aux autres - un endroit a moins de ressources qu'un autre. L'application stocke son état lorsqu'il est fermé. Par conséquent, l'utilisateur peut lancer l'application dans un environnement local, la fermer (l'application se souvient de son état), puis modifier les paramètres régionaux du téléphone et restaurer l'application. App tente d'extraire la ressource brute, mais échoue, car certaines informations de cette ressource brute sont manquantes en raison d'un autre paramètre régional.Comment vérifier si les paramètres régionaux du téléphone ont changé?

La question est: comment stocker les paramètres régionaux actuels lors de la fermeture de l'application?

Je connais java.util.Locale, mais comment puis-je mettre Locale à l'ensemble? Je peux compter sur getLanguage()?

Répondre

1

Vous pouvez stocker les informations de locale actuelles dans Preference lorsque l'utilisateur ferme l'application.

Voici le code exemple de la façon d'accéder à courant local:

public class Activity() { 
    public getLocal() { 
     return getResources().getConfiguration().locale; 
    } 
} 
+0

Merci. Après getResources(). GetConfiguration(). Locale, j'obtiens un objet Locale. L'éditeur SharedPreferences permet de mettre int/boolean/float/long ou une chaîne. Quelle est la façon la plus correcte de convertir Locale (en une chaîne, je suppose?) – zserge

+0

Il y a deux partie dans l'objet Locale: pays et langue, je pense, dans votre cas, ce dont vous avez besoin est country, utilisez Locale.getCountry () peut fonctionner correctement. – Tony

+0

La méthode n'a pas de type de retour ... – wseme