安卓APP开发之自定义EditView输入字符监听过滤器

由于之前没有Java的开发经验,也没学过安卓方面的开发,对于自带的一些方法很不熟悉,现在直接上手kotlin,着实艰辛。最近在琢磨这个editView的字符过滤的方法,在网上看了很多资料,都没移植过来,后来就自己自成一家,搞了一个简单的过滤方法,不知道实用不,贴出来与大家分享。

        et_senddata.addTextChangedListener(object :TextWatcher{
            private var str:CharSequence?=null
            private var mcount :Int =0
            override fun afterTextChanged(s: Editable?) {
            }

            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
//                et_senddata.setText(str!!.toString())
                mcount =count
            }

            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                str= s
                if(s.isNullOrEmpty())return

                if(Flag_tb_SendStr!!){
                    return
                }
                when(s!![s.length-1]){
                    in '1'..'9'->{}
                    in 'a'..'f'->{}
                    in 'A'..'F'->{}
                    else ->{
                        Toast.makeText(this@UserControlUI, "请输入正确的字符:0~9,a~f或者A~F", Toast.LENGTH_SHORT).show()
                        et_senddata.text!!.delete(s.length-1,s.length)
                    }
                }
            }
        })

以上代码是监听了et_senddata这个EditView控件,然后在onTextChanged状态下进行字符过滤,当检测到当前输入的字符不符时将其删除,这里用的方法是et_senddata.text!!.delete(s.length-1,s.length)的delete方法,ago0是元素的起始位置,ag1是结束位置,该方法可以删除一段元素,删除之后,在EditView控件里将不会显示出来,从而达到过滤的效果。

以上只是个人的想法,有不足之处,请各位大神指出,可以+QQ 578218949 交流

猜你喜欢

转载自blog.csdn.net/linqiping233/article/details/80611501