From 052697353f01fcc5d78ff69c022d4e9e96140a79 Mon Sep 17 00:00:00 2001 From: JLo'w Date: Fri, 6 May 2016 21:26:29 +0200 Subject: [PATCH] Meilleur regex et gestion pour le champ prix --- PremiereActivite/app/src/main/java/com/example/app_10p5/DecimalDigitsInputFilter.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/PremiereActivite/app/src/main/java/com/example/app_10p5/DecimalDigitsInputFilter.java b/PremiereActivite/app/src/main/java/com/example/app_10p5/DecimalDigitsInputFilter.java index 1803786..a512ecf 100644 --- a/PremiereActivite/app/src/main/java/com/example/app_10p5/DecimalDigitsInputFilter.java +++ b/PremiereActivite/app/src/main/java/com/example/app_10p5/DecimalDigitsInputFilter.java @@ -14,15 +14,22 @@ public class DecimalDigitsInputFilter implements InputFilter { Pattern mPattern; public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) { - mPattern= Pattern.compile("[0-9]{0," + (digitsBeforeZero-1) + "}+((\\.[0-9]{0," + (digitsAfterZero-1) + "})?)||(\\.)?"); + mPattern = Pattern.compile("(0|[1-9][0-9]{0,2})?([,.][0-9]{0,2})?"); + } @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { - Matcher matcher=mPattern.matcher(dest); - if(!matcher.matches()) - return ""; + String result = + dest.subSequence(0, dstart) + + source.toString() + + dest.subSequence(dend, dest.length()); + + Matcher matcher = mPattern.matcher(result); + + if (!matcher.matches()) return dest.subSequence(dstart, dend); + return null; } -- libgit2 0.21.2