我需要设置我的 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/