我正在尝试实现自定义软键盘行为并遇到问题。我重写onCreateInputConnection()和扩展BaseInputConnection类。现在我希望在单击一个键时调用方法commitText(),除非单击数字键,否则它会执行。数字键直接转到sendKeyEvent()方法。有没有办法像任何其他键一样处理数字键?感谢。
这是onCreateInputConnection方法实现。没什么特别的。
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
outAttrs.inputType = InputType.TYPE_CLASS_NUMBER;
outAttrs.imeOptions = EditorInfo.IME_ACTION_NONE;
return new BaseInputConnection(this, true) {
@Override
public Editable getEditable() {
return editable;
}
@Override
public boolean commitText(CharSequence text, int newCursorPosition) {
return super.commitText(text, newCursorPosition);
}
@Override
public boolean sendKeyEvent(KeyEvent event) {
return super.sendKeyEvent(event);
}
};
}