只能输入汉字EditText:ChineseEditText
程序员文章站
2022-06-14 22:26:44
...
package com.li.newhuangjinbo.custom;
import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputConnectionWrapper;
/**
- Created by Administrator on 2017/4/11.
*/
public class ChineseEditText extends android.support.v7.widget.AppCompatEditText {
public ChineseEditText(Context context) {
super(context);
}
public ChineseEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ChineseEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 输入法
* @param outAttrs
* @return
*/
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
return new mInputConnecttion(super.onCreateInputConnection(outAttrs),
false);
}
public class mInputConnecttion extends InputConnectionWrapper implements
InputConnection {
public mInputConnecttion(InputConnection target, boolean mutable) {
super(target, mutable);
}
/**
* 对输入的内容进行拦截
*
* @param text
* @param newCursorPosition
* @return
*/
@Override
public boolean commitText(CharSequence text, int newCursorPosition) {
// 只能输入汉字
if (!text.toString().matches("[\u4e00-\u9fa5]+")) {
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);
}
}
}
推荐阅读
-
Android开发限制edittext只能输入小数点后两位数,小数点前8位(代码实现)
-
只能输入汉字EditText:ChineseEditText
-
Android中EditText限制仅允许输入汉字/仅允许汉字和数字
-
android中EditText只允许输入汉字(过滤汉字)
-
android中EditText只允许输入汉字(过滤汉字)
-
js正则表达式限制文本框只能输入汉字。该怎么处理
-
限制文本框只能输入数字,小数点,英文字母,汉字
-
js 限制input只能输入数字、字母和汉字等等_javascript技巧
-
js 限制input只能输入数字、字母和汉字等等_javascript技巧
-
js正则表达式限制文本框只能输入汉字。该怎么处理