2010-07-01 6 views
1

Ok, j'ai une application avec 2 langues différentes (anglais et allemand), comment les changer depuis mon application? Lorsque je clique sur le bouton Langue im en utilisant l'intention de com.android.settings.LocalePicker et à partir de là, je sélectionne la langue. Donc, au lieu de cela, je veux sélectionner les options anglaises et allemandes de la boîte de dialogue. Je sais comment créer la boîte de dialogue, mais je ne sais pas comment changer les paramètres régionaux.Comment changer la localisation dans mon application Android sans aller aux paramètres?

+0

juste pour savoir ... comment faites-vous la localisation? Où gardez-vous le texte des différentes langues? – Cristian

+0

Si vous voulez que les chaînes soient en allemand, vous utilisez les valeurs du dossier-de, ou les valeurs françaises-fr, italian-it et ainsi de suite, et vous mettez votre string.xml avec les valeurs traduites pour les chaînes. Notez que pour certaines langues c'est différent, disons si vous utilisez macedonian que vous devez mettre le string.xml dans values-mk et values-en-rMK, ou pour simplified-chinese values-zh-rCN, valeurs traditionnelles-chinoises -zh-rTW. Vous pouvez trouver plus d'informations dans android sdk/dev docs. – nCounTr

Répondre

2

Les ressources d'application sont récupérées en utilisant le système local qui n'est pas modifiable depuis une application. L'écran des paramètres système utilise une classe (ActivityManagerNative) qui n'est pas disponible via le SDK et ne peut donc pas garantir le fonctionnement entre les versions, et ne doit donc pas être utilisée dans votre code.

Ainsi, vos options sont;

  • Ne pas offrir la fonctionnalité dans votre application
  • Mettre en oeuvre votre propre système pour déterminer quel paramètre l'utilisateur a sélectionné dans votre application et en tirant les ressources appropriées en utilisant votre propre code.
2

essayez ceci:

  1. créer une boîte de dialogue android normale avec bouton radio sélection de l'anglais & allemand
  2. OnCheckedChange()

écrire ceci pour changer la langue

Locale myLocale = new Locale(/*String selected*/); 
Locale.setDefault(myLocale); 

Configuration config2 = new Configuration(); 
config2.locale = myLocale ; 
getBaseContext().getResources().updateConfiguration(config2, 
    getBaseContext().getResources().getDisplayMetrics()); 
Questions connexes