首页 > 解决方案 > 未解决的参考:DecimalDigitsInputFilter

问题描述

我打电话时收到此代码

EditText.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(7),DecimalDigitsInputFilter(2))

有什么解决办法吗?

标签: androidkotlinandroid-input-filter

解决方案


尝试这个:

 class DecimalDigitsInputFilter( maxDecimalPlaces: Int) : InputFilter {
            private val pattern: Pattern = Pattern.compile(
                "[0-9]"  + "+((\\.[0-9]{0,"
                        + (maxDecimalPlaces - 1) + "})?)||(\\.)?"
            )
    
            override fun filter(
                p0: CharSequence?,p1: Int,p2: Int,p3: Spanned?,p4: Int,p5: Int
            ): CharSequence? {
                p3?.apply {
                    val matcher: Matcher = pattern.matcher(p3)
                    return if (!matcher.matches()) "" else null
                }
                return null
            }
        }

活动中的实施

  etContactUsName.filters = arrayOf<InputFilter>(DecimalDigitsInputFilter(maxDigitsAfterDot))

推荐阅读