只支持輸入漢字翻斟,字母逾礁、數(shù)字的編輯框,不支持輸入特殊字符和空格的編輯框
漢字過濾:[\u4e00-\u9fa5]+
數(shù)字和字幕過濾:[a-zA-Z0-9 /]+
/**
* @Description 只支持輸入漢字杨赤,字母敞斋、數(shù)字的編輯框截汪,不支持輸入特殊字符和空格
* @Author FTD
* @Date 2020/5/12
* @Version 1.0
*/
public class CustomEditText extends androidx.appcompat.widget.AppCompatEditText {
? ? public CustomEditText(Context context) {
? ? ? ? super(context);
? ? }
? ? public CustomEditText(Context context, AttributeSet attrs) {
? ? ? ? super(context, attrs);
? ? }
? ? public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
? ? ? ? super(context, attrs, defStyleAttr);
? ? }
? ? @Override
? ? public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
? ? ? ? return new mInputConnection(super.onCreateInputConnection(outAttrs), false);
? ? }
? ? class mInputConnection extends InputConnectionWrapper implements InputConnection {
? ? ? ? public mInputConnection(InputConnection target, boolean mutable) {
? ? ? ? ? ? super(target, mutable);
? ? ? ? }
? ? ? ? //攔截內容
? ? ? ? @Override
? ? ? ? public boolean commitText(CharSequence text, int newCursorPosition) {
? ? ? ? ? ? // 只能輸入漢字或者英文
? ? ? ? ? ? if (!text.toString().matches("[\u4e00-\u9fa5]+") && !text.toString().matches("[a-zA-Z0-9 /]+")) {
? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? }
? ? ? ? ? ? return super.commitText(text, newCursorPosition);
? ? ? ? }
? ? ? ? @Override
? ? ? ? public boolean sendKeyEvent(KeyEvent event) {
? ? ? ? ? ? return super.sendKeyEvent(event);
? ? ? ? }
? ? ? ? @Override
? ? ? ? public boolean setSelection(int start, int end) {
? ? ? ? ? ? return super.setSelection(start, end);
? ? ? ? }
}
}