2010-10-25 4 views
3

J'avais lu sur la localisation ici: http://developer.android.com/guide/topics/resources/localization.html Mais j'ai besoin de changer la langue dans mon application androïde en temps d'exécution, par exemple. via Spinner.Comment changer la langue dans l'exécution

J'ai essayé de faire SUBJ de cette façon

DisplayMetrics dm = res.getDisplayMetrics(); 
Configuration conf = res.getConfiguration(); 
conf.locale = new Locale(language_code.toLowerCase(), 
coutry_code.toUpperCase()); 
res.updateConfiguration(conf, dm); 

mais toutes les modifications sont seulement après le redémarrage de l'application Quelqu'un pourrait-il me aider?

Répondre

0

Bien dans le guide de localisation, il a automatiquement mis à jour ... et quand j'utilise des filateurs dans mon application, il met à jour correctement .. vous avez la classe de fileur mis en place au bas de votre classe droite? ou tout simplement dans les choix de votre spinner, faites-le redémarrer votre intention comme:

//spinner class start... 
if(selected.equals("english") //given selected is a string returned by Spinner 
{ 
    //normal spinner content you have goes here, then 
    //for example, finish method, then restart with an intent 
    finish() 
    Intent myIntent = new Intent(main.this,main.class); 
    main.this.startActivity(myIntent); 
} 
//or.. 
if(selected.equals("french"){ // continued.. 
    refresh(); 
} 

//given that refresh(); 
public void refresh(){ 
    finish() 
    Intent myIntent = new Intent(main.this,main.class); 
    main.this.startActivity(myIntent); 
} 
+0

Merci, Sam! Peut-être que vous pouvez répondre comment obtenir la chaîne de ressource de certains paramètres régionaux? –

+0

Je suis désolé, vous allez devoir réfléchir un peu plus ... Je ne suis pas sûr de ce que vous demandez. Demandez-vous, comment avoir plusieurs endroits pour obtenir des chaînes? – Samuel

+0

J'ai quelques locales - en, ru, fr, de. Lorsque les paramètres de l'appareil sont sélectionnés par ex. Les paramètres régionaux en français et j'essaie d'appeler getString (strId) la valeur qui m'est retournée proviendrait de fr/strings.xml, mais que se passe-t-il si je veux obtenir une chaîne différente, par exemple. Anglais? Existe-t-il un moyen d'obtenir une chaîne comme getString (strId, locale)? –

Questions connexes