Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Préférences personnalisées

Sujet résolu
12 janvier 2012 à 21:24:38

Bonjour à toutes et à tous,

Je suis étudiant en deuxième année de DUT Informatique, et lors du quatrième semestre j'aurais des cours sur Android.
Comme d'habitude, j'aime prendre de l'avance, j'ai décidé de commencer il y a environ 2 semaines.
J'ai suivi des tutoriels pour faire une calculatrice et un navigateur web. Aucuns soucis à déclarer.
J'ai ensuite voulu réaliser la version Android de mon application de Mastermind qui est en Java.

Pour le moment j'ai donc une page accueil avec quelques boutons : Jouer, Aide, Options, Quitter.
Jouer ouvre une nouvelle activité avec le plateau de jeu (complètement fonctionnel).
Aide ouvre une autre activité expliquant les règles du jeu.
Quitter ferme l'application.

Par contre, j'ai un petit soucis pour les options.
J'ai traduit l'application en anglais, et j'aimerais que l'utilisateur puisse changer de langue.
J'ai regarder du côté de la classe Preference et quelques tutoriels sur celle-ci, mais aucun n'indique la possibilité de personnaliser l'activité des préférences.
Ce que j'entend par personnaliser, c'est de pouvoir avoir une image de fond, d'avoir "Eng" et "Fr" sous forme de switch etc ...
Comment dois-je m'y prendre ?
J'ai essayé par ailleurs de faire une activité "normale", comme les autres, et de faire passer les options par bundle en lançant l'activité de jeu. Mais je trouve cela assez "lourd" comme méthode, et les données seront perdues si l'on quitte l'application.

Donc si c'est possible de personnaliser les préférences, comment?
Si non, est-ce qu'il y a autre chose d'équivalent, qui me permettrait de faire ce que je souhaite, et ne pas perdre les données ?

Si je ne suis pas clair, n'hésitez pas à me le faire savoir ^^

Dans tout les cas, merci de m'avoir lu, et merci d'avance pour vos réponses :)
  • Partager sur Facebook
  • Partager sur Twitter
12 janvier 2012 à 21:43:40

Bonsoir,

Un petit tuto sur les Preferences: http://www.ace-art.fr/wordpress/2010/0 [...] -preferences/

A propos de la localisation de l'application, par défaut ne permet pas de forcer une langue: celle-ci est détectée suivant la configuration du téléphone. Android charge alors les strings du dossier values-xx correspondant et si rien ne match, le dossier values. C'est pour cela qu'il est conseillé (à mon sens) de laisser l'anglais dans values et de mettre le français dans values-fr.

Mais on peut quand même forcer une langue: par exemple passer l'appli en Espagnol sur un téléphone en Français alors que l'appli a un dossier values-fr.

// A adapter pour créer la fonction de passage en Français
public void switchLocaleToEnglish(View v) {
    Locale loc = Locale.ENGLISH;
    Configuration config = new Configuration();
    config.locale = loc;
    Locale.setDefault(loc);
    getBaseContext().getResources().updateConfiguration(config, getResources().getDisplayMetrics());
}


Si tu fais ça dans la page des Preferences, c'est bon. si tu le fait via un bouton dans ton Activity, il faut la redémarrer:
// Dans la classe MyActivity
finish();
startActivity(new Intent(MyActivity.this, MyActivity.class));
  • Partager sur Facebook
  • Partager sur Twitter
12 janvier 2012 à 22:06:37

Tout d'abord, merci pour ta réponse très rapide =)

J'avais déjà lu ce tuto, et ma réponse se trouve plutôt dans les commentaires, que j'ai du complètement oublier de lire lors de ma première visite ^^

Pour la langue, j'ai effectivement un dossier values avec strings.xml dont le contenu est en anglais (et c'est ce fichier qui est chargé par défaut si l'application ne contient pas de dossier spécifique à la langue du téléphone si je ne me trompe pas) et un dossier values-fr avec un strings.xml qui lui est la traduction française du premier fichier.

Mais c'est vrai qu'en y repensant, changer la langue de l'application directement à l'intérieur de celle-ci ne sera peut-être pas utile ^^.

De toute manière, l'application n'est pas là pour me faire gagner de l'argent, c'est surtout un projet personnel. Si j'arrive à faire quelque chose de bien, je mettrai l'application sur le market en gratuit afin d'avoir des retours de quelques utilisateurs.

En tout cas merci de ton aide. Je trouve assez difficile de débuter sous Android étant donné que les tutoriels sont assez rares ...

Merci encore =)
  • Partager sur Facebook
  • Partager sur Twitter
12 janvier 2012 à 23:02:29

De rien.

Passe le sujet en Résolu si toutes tes questions ont eu des réponses satisfaisantes et bonne continuation pour ton appli !

Je tiens juste à préciser que le code pour changer de langue "dynamiquement" que j'ai posté au-dessus est un peu bourrin.
C'est pour cela qu'il est préférable de garder le fonctionnement par défaut d'Android.
  • Partager sur Facebook
  • Partager sur Twitter