IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Formatter la saisie user d'un EditText "à la volée"


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut Formatter la saisie user d'un EditText "à la volée"
    Bonjur à tous,

    J'ai une demande qui me parraissait tres simple au début mais qui pourtant ne s'avère pas si triviale que ca...

    Dans un EditText je voudrais formatter "à la volée" la saisie de l'utilisateur d'une somme d'argent de sorte d'avoir les espaces entre milliers/millions/milliards etc...

    soit :
    1234567 >> 1 234 567
    1234 >> 1 234

    j'ai pour l'instant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    prix_edit.setOnKeyListener(new OnKeyListener() {
    			@Override
    			public boolean onKey(View v, int keyCode, KeyEvent event) {
     
    				if (event.getAction()!=KeyEvent.ACTION_DOWN) {
     
    					String res = prix_edit.getText().toString();
    					res = new StringBuilder(res).reverse().toString();
    					res = res.replaceAll(" ", "");
    					res = res.replaceAll(".{3}", "$0 ");
     
    					String reversed = new StringBuilder(res).reverse().toString();
    					prix_edit.setText(reversed);
     
    					prix_edit.setSelection(prix_edit.length());
    				}
    				return false;
    			}
    		});
    2 problème se posent à moi:
    - je trouve ce code brouillon et trop "bricolage" a mon gout
    - je force l'index de saisie en fin de traitement ce qui change la maniere d'editer en se positionnant manuellement (avec le cursor)

    Je suis certain qu'il existe une façon "propre" de faire cela.
    Quelqu'un aurait une idée svp?

    D''avance merci

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Je pense que tu devrais t'orienter vers l'utilisation de NumberFormat.

    Avec un setText passé par la moulinette à chaque entrée utilisateur.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Il faut utiliser un TextWatcher pour intercepter chaque changement.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2014
    Messages : 39
    Points : 25
    Points
    25
    Par défaut
    Moi aussi je dirais avec un TextWatcher... je suis pas devant mon ordi la mais si tu connais pas ça fais des recherches... ils en parle aussi dans les cours sur le développement Android.

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo