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

本文介绍了一位开发者在没有Java基础的情况下直接学习Kotlin进行安卓APP开发的经历,重点分享了如何实现EditView输入字符的监听和过滤。通过在onTextChanged事件中使用delete方法删除不符合条件的字符,达到过滤效果。作者欢迎有经验者提供反馈和交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于之前没有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 交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值