Android 控制EditText输入内容类型

例如,控制输入框只能输入数字:


第一种,在xml文件使用属性控制

                    <EditText
                        android:id="@+id/login_input_num_et"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="1"
                        android:background="@null"
                        android:digits="0123456789"
                        android:hint="@string/login_01"
                        android:inputType="number"
                        android:maxLength="10"
                        android:paddingLeft="13dp"
                        android:paddingTop="1dp"
                        android:paddingRight="13dp"
                        android:paddingBottom="1dp"
                        android:singleLine="true"
                        android:textColor="@color/se_0000"
                        android:textColorHint="@color/se_bcbf"
                        android:textSize="12sp"
                        android:textStyle="bold" />

第二种,通过代码动态控制


 login_input_num_et.addTextChangedListener(NumChangeListener())

    inner class NumChangeListener : TextWatcher {
        override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {

        }

        override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
            val editable: String = getNum()
            val str = accountFilter(editable)
            if (editable != str) {
                login_input_num_et.setText(str)
                login_input_num_et.setSelection(str!!.length)
            }
        }

        override fun afterTextChanged(p0: Editable?) {

        }

    }

    fun accountFilter(str: String?): String? {
        // 只允许数字
        val regEx = "[^0-9]"
        val p: Pattern = Pattern.compile(regEx)
        val m: Matcher = p.matcher(str)
        return m.replaceAll("").trim()
    }

 另外匹配规则:
如:
只能输入数字与字母 val regEx = "[^a-zA-Z0-9]"

只能输入数字、字母、指定符号 val regEx = "[^a-zA-Z0-9@_.]"
(数字、字母、@ _ .)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值