Android 限制EditText输入小数点后面位数
16lz
2021-01-23
遇到一需求,要限制EditText小数点输入位数,最后经过查阅资料,实现方法如下:
①xml中限制输入的类型:
android:inputType="numberDecimal"
②重写InputFilter
public class DecimalDigitsInputFilter implements InputFilter { private final int decimalDigits; /** * Constructor. * * @param decimalDigits maximum decimal digits */ public DecimalDigitsInputFilter(int decimalDigits) { this.decimalDigits = decimalDigits; } @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { int dotPos = -1; int len = dest.length(); for (int i = 0; i < len; i++) { char c = dest.charAt(i); if (c == '.' || c == ',') { dotPos = i; break; } } if (dotPos >= 0) { // protects against many dots if (source.equals(".") || source.equals(",")) { return ""; } // if the text is entered before the dot if (dend <= dotPos) { return null; } if (len - dotPos > decimalDigits) { return ""; } } return null; }}
③设置小数点位数,这里传进去的是2位
etInvoiceAmount.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(2)});
更多相关文章
- 重写Button实现图片drawableTop和文字一起居中
- Android重写onConfigurationChanged规避横竖屏切换时候重新进入o
- android edittext 限制输入框小数位数
- Android 中可重写的一些样式
- fullScreen时的软键盘监听(非重写Layout方式)
- android重写Dialog(接上文)
- 重写dialog
- 13、Android重写系统返回键
- Android -- 重写android返回键