Android 限制edittext 整数和小数位数 过滤器(详解)
写了一个过滤器,根据需要限制edittext输入的整数和小数位,如下代码:
package allone.verbank.apad.client.component; import android.text.InputFilter; import android.text.Spanned; /** * * @Title: ComponentDigitCtrlFilter.java * @Package allone.verbank.apad.client.component * @Description: 为了限制edit根据商品输入指定的位数和小数位 * @author qiulinhe qiu.linhe@allone.cn */ public class ComponentDigitCtrlFilter implements InputFilter { private boolean isJPY; private int digit; public ComponentDigitCtrlFilter(boolean isJPY, int digit) { this.isJPY = isJPY; this.digit = digit; } @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { // 删除等特殊字符,直接返回 if ("".equals(source.toString())) { return null; } String oriValue = dest.toString(); StringBuffer sb = new StringBuffer(oriValue); sb.append(source); String newValue = sb.toString(); String[] newValueVec = newValue.split("\\."); if (newValueVec.length == 2) { double number = Double.parseDouble(newValueVec[0]); boolean numberflag = true; if (isJPY) { numberflag = ((number - 999 > 0.000001) ? false : true); } else { numberflag = ((number - 99 > 0.000001) ? false : true); } boolean digitflag = true; try { String digitNumber = newValueVec[1]; digitflag = digitNumber.toCharArray().length > digit ? false : true; } catch (Exception ex) { digitflag = false; } if (numberflag && digitflag) { return source; } else { return ""; } } else { double value = Double.parseDouble(newValue); if (isJPY) { return value > 999 ? "" : source; } else { return value > 99 ? "" : source; } } // dest.subSequence(dstart, dend) } }
逻辑是判断传入的isJPY是否是要整数两位小数三位数的,然后对输入的数据进行限制,只需要将过滤器添加到对应的edittext控件即可,如下:stopEditText.setFilters(new InputFilter[] { new ComponentDigitCtrlFilter(digit == 2, digit) });
以上这篇Android 限制edittext 整数和小数位数 过滤器(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Android 使用URLConnection下载音频文件的方法
有时候我们会需要下载音频文件。这里提供一种思路,将在线音频文件通过流写到本地文件中。需要的朋友可以参考下2019-09-09Android中EditText屏蔽第三方输入法表情的方法示例
最近在工作终于遇到一个问题,因为第三方输入法表情的问题导致Android中TextView的内容显示异常,只能想办法解决了,下面这篇文章主要记录了在处理Android中EditText屏蔽第三方输入法表情的方法,需要的朋友可以参考借鉴,下面来一起看看吧。2017-01-01Android编程实现两个Activity之间共享数据及互相访问的方法
这篇文章主要介绍了Android编程实现两个Activity之间共享数据及互相访问的方法,简单分析了Android中Activity数据共享与访问的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-11-11
最新评论