- 在app开发过程中 很多都会用到用户输入 涉及到用户输入 就会用到EditText组件
- 在用到数字输入时,很多都是要求位数限制和小数位限制的
- 为了方便以后开发用到 这里我封装了一个工具类 供参考
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;
}
}
使用说明:
@BindView(R.id.et_input_PayAmount)
EditText mEtInputPay;
private void init() {
user = UserUtils.getUserInfo();
if (user != null) {
payAmountTv.setText(String.format(Locale.CHINA, "%.2f", user.getBalance()));
commissionPayTv.setText(String.format(Locale.CHINA, "%.2f", user.getCanWithdraw()));
}
mEtInputPay.setFilters(new InputFilter[]{new DecimalDigitsInputFilter(9,2)});
}