1

我有一个自定义实现的 IME,它在按下 ImageButtons 时发送 KeyEvents。当按下标有 Enter 的 ImageButton 时,将执行以下代码:

ic.sendKeyEvent(new KeyEvent(0,0,MotionEvent.ACTION_DOWN,KeyEvent.KEYCODE_ENTER,0,0,0,0,KeyEvent.FLAG_EDITOR_ACTION));

问题是当按下 Enter 时,底层应用程序的行为会有所不同。在消息中,提交的文本被发送,但在浏览器和可编辑字段中,最后输入的单词被突出显示,并弹出剪切和粘贴选项。

我希望 Enter 键的行为方式适用于“Go”、“Send”和“Next”。

4

1 回答 1

0

我有一个类似的问题。

如果您想输入“DONE”和“NEXT”,请使用

long eventTime = SystemClock.uptimeMillis();
KeyEvent eventDOWN  = new KeyEvent(eventTime, eventTime,
 KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER, 0, 0,
 KeyCharacterMap.VIRTUAL_KEYBOARD, 0,
 KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE
 | KeyEvent.FLAG_EDITOR_ACTION);

KeyEvent eventUP = new KeyEvent(SystemClock.uptimeMillis(), eventTime,
 KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER, 0, 0,
 KeyCharacterMap.VIRTUAL_KEYBOARD, 0,
 KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE
 | KeyEvent.FLAG_EDITOR_ACTION);
于 2013-05-21T12:05:49.403 回答