美文网首页
限制输入框小数位数和总位数

限制输入框小数位数和总位数

作者: 恋君一生 | 来源:发表于2020-05-30 10:02 被阅读0次
    1、限制输入框小数位数和输入框的总位数
        /**
         * 限制小数的位数和总的位数
         *
         * @param et         输入框
         * @param decimalNum 小数的位数
         * @param totalNum   总位数
         */
        public static void decimalNumber(final EditText et, final int decimalNum, final int totalNum) {
            InputFilter lengthFilter = new InputFilter() {
                @Override
                public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                    // source:当前输入的字符
                    // start:输入字符的开始位置
                    // end:输入字符的结束位置
                    // dest:当前已显示的内容
                    // dstart:当前光标开始位置
                    // dent:当前光标结束位置
                    Log.i("wu", "start==" + start + "==end==" + end + "==dstart==" + dstart + "==dend" + dend);
                    if (dest.length() == 0 && source.equals(".")) {
                        return "0.";
                    }
                    String dValue = dest.toString();
                    if (dValue.length() >= totalNum) {
                        return "";
                    }
                    String[] splitArray = dValue.split("\\.");
                    if (splitArray.length > 1) {
                        String dotValue = splitArray[1];
                        String content = et.getText().toString().trim();
                        int index = content.indexOf(".");
                        if (dotValue.length() == decimalNum) {
                            if (index < dstart) {
                                return "";
                            }
    
                        }
                    }
                    return null;
                }
            };
            et.setFilters(new InputFilter[]{lengthFilter});
        }
    
    2、限制输入框小数位数
    /**
         * 限制输入框小数位数
         *
         * @param et
         * @param decimalNum
         */
        public static void decimalNumber(final EditText et, final int decimalNum) {
            decimalNumber(et, decimalNum, Integer.MAX_VALUE);
        }
    

    相关文章

      网友评论

          本文标题:限制输入框小数位数和总位数

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