【发布时间】:2015-07-01 07:25:29
【问题描述】:
我进行了很多搜索,但没有找到解决问题的方法。 我怎样才能有一个editText,用户可以在其中输入十进制格式的数字,其中格式应该是小数点前的整数和小数点后的两个整数。
如果用户输入 1 那么它应该是 1.00 并且不允许输入大于 9.99 的值。
我参考了不同的代码,但没有任何效果。 下面是我的代码 -
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) + "})?)||(\\.)?");
}
@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 "";
return null;
}
}
和
mSetupProfileViewHolder.mAthleteGPAET.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(3,2)});
但它允许用户输入所有值,例如 333,999 等。
【问题讨论】:
标签: android android-edittext decimalformat