EditText输入3个字母和4个数字-动态改变输入类型



我需要设置我的EditText输入三个alpha值和四个数字Ex:- ABC1234。所以我需要改变自动输入类型从文本到电话,当用户键入三个阿尔法。我想出了下面的代码,但它没有改变电话输入类型和文本类型是保留任何文本长度。

editText.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
            String text = editText.getText().toString();
           if(text.length()==1 || text.length()==2 || text.isEmpty()){
               editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
               System.out.println("Length Text type : " + text.length());
           }else{
               editText.setRawInputType(InputType.TYPE_CLASS_PHONE);
               System.out.println("Length phone type : " + text.length());
           }
        }

我做错了什么

setRawInputType()通常在初始化视图时使用,在自定义视图的构造函数中或在活动的onCreate()方法中。

在你的情况下,你必须调用setInputType()改变软键盘的模式。

最新更新