美文网首页
Android限制EditText输入金额小于1E,并最多2位小

Android限制EditText输入金额小于1E,并最多2位小

作者: 蓝小默 | 来源:发表于2018-03-01 18:25 被阅读269次
    1. 首先在EditText布局中设置inputType:
    android:inputType="number|numberDecimal"
    
    1. 给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;
                }
            }});
    

    相关文章

      网友评论

          本文标题:Android限制EditText输入金额小于1E,并最多2位小

          本文链接:https://www.haomeiwen.com/subject/ocdnxftx.html