1. 设置EditText首选输入法:
EditText edtInput = (EditText)findViewById(R.id.edtInput);
edtInput.setInputType(InputType.TYPE_CLASS_PHONE);// 设置为数字,这是针对与Android自带输入法来说的,其他输入法可能会有问题,请自己调试
彩蛋:试试设置 InputType.TYPE_CLASS_TEXT | InputType.TYPE_DATETIME_VARIATION_DATE
2. 限制输入字符:
2.1. 实例化对应的KeyListener类,然后由EditText进行绑定:
比较简单的方式:
DigitsKeyListener numericOnlyListener = new DigitsKeyListener(false,true);
edtInput.setKeyListener(numericOnlyListener);
比较灵活的方式:
edtIndentityNum.setKeyListener(new NumberKeyListener() {
public int getInputType() {
return 3;// 这里其实返回的是InputType的枚举值
}
@Override
protected char[] getAcceptedChars() {
// 设置输入框只能接受 0-9 跟大小写的 x
return new char[]{'1','2','3','4','5','6','7','8','9','0','x','X'};
}
});
3. 隐藏输入法
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(this._etIdentityNum.getWindowToken(), 0);