控制EditText不让输入中文(输入内容类型)
自定义EditText重写onCreateInputConnection()方法
在该方法内返回自定义的MyInputConnecttion
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
return new MyInputConnecttion(super.onCreateInputConnection(outAttrs),
false);
}
创建MyInputConnecttion继承InputConnectionWrapper实现InputConnection在commitText()方法内部控制不能输入或者可输入的文字类型
class MyInputConnecttion extends InputConnectionWrapper implements InputConnection {
public MyInputConnecttion(InputConnection target, boolean mutable) {
super(target, mutable);
}
/**
* 对输入的内容进行拦截
*/
@Override
public boolean commitText(CharSequence text, int newCursorPosition) {
// 不能输入汉字
if (text.toString().matches("[\u4e00-\u9fa5]+")) {
return false;
}
return super.commitText(text, newCursorPosition);
}
}