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

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);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。