您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

安卓通过InputFilter限制EditText输入

蓝不蓝编程 发布时间:2020-11-19 17:19:53 ,浏览量:0

目标

限制EditText输入,最多允许三位小数,最大1000000.

解决方案
private fun editTextFilter(context: Context): InputFilter {
        //最大允许输入的数
        val maxValue = 1000000

        //最多保留几位小数
        val maxCountAfterDot = 3
        
        return object : InputFilter {
            override fun filter(source: CharSequence, start: Int, end: Int,
                                dest: Spanned, dstart: Int, dend: Int): CharSequence? {
                val currentInput = source.toString()
                val originalText = etcFeeEt.text
                if (originalText.isNotEmpty()) {
                    val dotIndex = originalText.indexOf(".")
                    if (dotIndex != -1 && dotIndex  maxValue) {
                        Toast.makeText(context, "数字太大", Toast.LENGTH_LONG).show()
                        return ""
                    }
                } else {
                    if (currentInput == ".") {
                        return ""
                    }
                }
                return source
            }
        }
    }
  • 调用
editText.filters = arrayOf(editTextFilter(context))
关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0402s