EditText限制小数点前后位数
来源:互联网 发布:单片机的外部复位电路 编辑:程序博客网 时间:2024/05/18 00:18
在EditText输入数字的时候,通常我们需要限制小数点前后位数.比如金额输入一般我们需要限制小数点后面最多2位.我们可以通过 TextWatcher 实现.
public class MyWatcher implements TextWatcher { private int beforeDot; private int afterDot; /** * 构造器 * * @param beforeDot 小数点前位数 不限制输入-1 * @param afterDot 小数点后位数 不限制输入-1 */ public MyWatcher(int beforeDot, int afterDot) { this.beforeDot = beforeDot; this.afterDot = afterDot; } @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) { judge(s); } private void judge(Editable editable) { String temp = editable.toString(); int posDot = temp.indexOf("."); //直接输入小数点的情况 if (posDot == 0) { editable.insert(0, "0"); return; } //连续输入0 if (temp.equals("00")) { editable.delete(1, 2); return; } //输入"08" 等类似情况 if (temp.startsWith("0") && temp.length() > 1 && (posDot == -1 || posDot > 1)) { editable.delete(0, 1); return; } //不包含小数点 不限制小数点前位数 if (posDot < 0 && beforeDot == -1) { //do nothing 仅仅为了理解逻辑而已 return; } else if (posDot < 0 && beforeDot != -1) { //不包含小数点 限制小数点前位数 if (temp.length() <= beforeDot) { //do nothing 仅仅为了理解逻辑而已 } else { editable.delete(beforeDot, beforeDot + 1); } return; } //如果包含小数点 限制小数点后位数 if (temp.length() - posDot - 1 > afterDot && afterDot != -1) { editable.delete(posDot + afterDot + 1, posDot + afterDot + 2);//删除小数点后多余位数 } }}
使用的时候 如下:
<EditText android:id="@+id/et_i_want" android:layout_width="wrap_content" android:layout_height="25dp" android:hint="0.00" android:inputType="numberDecimal"/>
etIWant.addTextChangedListener(new MyWatcher(-1, 2));//限制小数点后最多2位
0 0
- EditText限制小数点前后位数
- EditText限制小数点前后位数
- 利用正则表达式限制EditText小数点前后位数和格式
- android EditText 中的TextWatcher 限制小数点位数
- Android 限制EditText输入小数点后面位数
- EditText限制输入小数点后字符位数
- Android EditText控制小数点位数及输入限制工具类
- 限制小数点后位数
- EditText限制小数点后两位
- EditText输入限制小数点后两位
- android:限制EditText输入位数
- EditView实现小数点后位数限制功能
- 限制double类型的小数点位数
- iOS uitextField限制输入小数点的位数
- 设置UITextField输入小数点位数的限制
- C#控制台 限制小数点的位数输出
- 【Swift】UITextField 输入小数点和位数限制
- iOS 数字键盘限制输入的位数以及小数点的位数
- 关于alaw转pcm的注意事项
- 解决mysql连接时的问题
- Spring MVC和Struts2的区别
- Mysql5.7.* lost connection to MySQL server at waiting for initial communication packet
- sonar代码质量检测工具的配置和使用
- EditText限制小数点前后位数
- Python 破解zip压缩文件(来自Python绝技)
- 【JS】输入框内容传递给另一个输入框,测试通过
- Redis监控和告警
- ZWAVE Door Lock Logging Records
- 18、Java入门—Java IO流之对象的序列化和反序列化
- 移动端实现排序拖动
- 根据身份证10位号码推测出生日期
- C++ 官网的例子,可变参数的函数