Android限制EditText输入金额小于1E,并最多2位小数
16lz
2021-01-25
- 首先在EditText布局中设置inputType:
android:inputType="number|numberDecimal"
- 给EditText设置Filter:
//设置最多提现金额不能超过1E,并设置小数点后最多只能有2位 mMoneyEdit.setFilters(new InputFilter[]{new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String lastInputContent = dest.toString(); //如果包含. if (lastInputContent.contains(".")) { int index = lastInputContent.indexOf("."); //如果光标在.的前面,那么判断.的位置是不是在8以后 if (dend < index) { if (index >= 8) { return ""; } } //如果光标在.后面大于3,说明小数位要超过2位了 if (dend - index >= 3) { return ""; } } else { //如果输入的字符不是.并且字符串的长度大于8,说明输入的整数部分已经达到了千万 if (!source.toString().equals(".") && lastInputContent.length() >= 8) { return ""; } } //如果字符串长度大于11直接返回了 if (lastInputContent.length() >= 11) { return ""; } return null; } }});
更多相关文章
- 分支和循环(二)(零基础学习C语言)
- android EOFException异常解决办法 (SharedPreferences保存对象)
- 在Android中使用MD5
- android验证邮箱输入是否合法
- android 数据库 sqlite数据类型
- Android(安卓)DES加密的CBC模式加密解密和ECB模式加密解密
- javascript根据字符串创建Date对象,在ios和android中行为不一致
- android 常用adb指令
- android 格林尼治标准时间的 格式转换 (String To Date) 报错 ja