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

标签 java android android-edittext

我需要设置我的 EditText 之一来输入三个 alpha 值和四位数字,例如:- 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() 通常在初始化 View 时、在自定义 View 的构造函数中或在 Activity 的 onCreate() 方法中使用。

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

关于java - EditText 输入 3 个字母和 4 个数字 - 动态更改输入类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40585460/

相关文章:

java - 有没有一种方法可以在 Java 中更改具有相同字符的多个字符串?

java - 谷歌钱包选择器调用

Android 服务的 onBind 未被调用,即使连接了客户端也正在调用 onDestroy

java - 使用 HSSFRegionUtil (Apache POI) 添加边框到合并单元格

java - 双向多图等效数据结构

android - 如何在 ListView 中按字母顺序显示联系人

android - 检测应用程序何时在 Android 中空闲

java - 将 Math.log 应用于 EditText

android - EditText 不接受数字作为输入

android - 我可以在没有 EditText 的情况下使用软键盘吗?