我需要设置我的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()
改变软键盘的模式。