EditText保留两位小数并输入不超过最大值
2017-05-02 15:50
489 查看
首先,xml中EditText设置属性:
然后设置公有变量:
其中flag是为了预防在TextChangeListener中更改EditText内容时产生死循环用的,不懂得就直接复制代码吧
最后Java文件中给EditText设置TextChangeListener:
android:inputType="numberDecimal"
然后设置公有变量:
private BigDecimal totalAmount; private String totalAmountStr; private boolean flag = true;
其中flag是为了预防在TextChangeListener中更改EditText内容时产生死循环用的,不懂得就直接复制代码吧
最后Java文件中给EditText设置TextChangeListener:
edt.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (!TextUtils.isEmpty(s.toString()) && flag) { BigDecimal result; String temp = s.toString(); int posDot = temp.indexOf("."); try { if (posDot == s.length() - 1) { return; } result = new BigDecimal(s.toString()); } catch (Exception e) { return; } //不允许超出最大值 if (result.compareTo(totalAmount) == 1) { temp = totalAmountStr; ToastUtils.show("当前最多转出" + totalAmountStr + "元"); } //保留两位小数 flag = false; s.clear(); if (posDot > 0 && temp.length() - posDot - 1 > 2) { temp = temp.substring(0, posDot + 3); } s.append(temp); flag = true; } } });
相关文章推荐
- android editText 控制输入最大值、保留两位小数、保留小数点前面两位数
- Android使用EditText输入浮点型数字设置第一位不能输入小数点并且保留两位小数
- EditText中输入金额保留两位小数
- 在实现文本框只能输入数字和小数点的基础上实现了价格样式(保留两位小数)
- easyUI numberbox框限制输入的数字保留两位小数
- Angular限制input框输入金额(是小数的话只保留两位小数点)
- Android限定EditText的输入类型为数字或者英文(包括大小写),EditText,TextView只能输入两位小数
- 求实数的绝对值。输入数据有多组,每组占一行,每行包含一个实数。对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。
- JS保留四舍五入两小数(解决保留两位小数输入1.999变成1.100的问题)
- 2、编写程序,从键盘上输入两个电阻的值,求它们并联和串连的电阻值,输出结果保留两位小数。
- JS限制文本框输入金额并保留两位小数
- jsp 校验数字 保留两位小数 不能输入汉字
- Windows平台下GCC编程之从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数
- 关于EditText输入数字时候限制为一个亿的问题,且保留小数点两位小数
- Android 控制金额输入格式 保留两位小数
- EditText限制 只能输入0.00 -100保留两位小数
- 实时检测输入数据保留两位小数(偶尔发现有bug就跑去修改)
- 限制输入框只能输入数字,并且保留两位小数
- ios 文本框只能输入数字保留两位小数和只能输入数字
- iOS限制文本框输入两位小数和最大值