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:
2 problème se posent à moi:
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; } });
- 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
Partager