Edittext 帮助 - onKeyListener 不起作用

Posted

技术标签:

【中文标题】Edittext 帮助 - onKeyListener 不起作用【英文标题】:Edittext help - onKeyListener doesn't work 【发布时间】:2012-02-17 02:56:03 【问题描述】:

我有一个简单的编辑文本,已添加到我的布局中。我在 onCreate 方法中添加了一个简单的 OnKeyListener 如下:

final EditText simpleEditText = (EditText) findViewById(R.id.editText1);
simpleEditText.setOnKeyListener(new OnKeyListener() 
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) 
    System.out.println("HELLO");
    return false;

);

当应用程序启动时,一切正常。每按下一个键,就会打印两次 HELLO - 一次用于 DOWN 操作,一次用于 UP 操作。

现在,当我用鼠标单击 edittext 时,edittext 不再运行我的 onKey 方法中的代码。我究竟做错了什么?在用户单击编辑文本后,我仍然希望接收关键事件。我不在乎鼠标点击,我只是用它来重新定位光标。光标重新定位后,不再注册按键事件。

请查看附件图片以了解更多信息。

谢谢 扎米尔

http://i.stack.imgur.com/j2DP7.jpg

【问题讨论】:

【参考方案1】:

As per android API,onKey 仅对按下的物理键起作用。您可能需要考虑使用 OnClickListener 进行鼠标单击。这是 API documentation。

【讨论】:

我仍然希望在用户单击编辑文本后接收关键事件。我不在乎鼠标点击,我只是用它来重新定位光标。光标重新定位后,不再注册按键事件。【参考方案2】:

点击事件不是关键事件。除了关键事件之外,您不会(也不应该)收到 onKey 事件。

【讨论】:

我仍然希望在用户单击编辑文本后接收关键事件。我不在乎鼠标点击,我只是用它来重新定位光标。光标重新定位后,不再注册按键事件。

以上是关于Edittext 帮助 - onKeyListener 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

android 给 edittext 加 onkeylistener 删除键就没有效果了

使用软键盘上的“ENTER”键而不是单击按钮

Android EditText 捕获KEYCODE_ENTER后按下Del键无法正常退格?

java/android 做题中整理的碎片小贴士(12)

键盘事件触摸事件

Android踩坑日记:监听软键盘多次调用和刷新系统相册和获取所有相片