开发人员参考提到OnKeyListener仅适用于硬件密钥事件:
“将硬件键事件调度到此视图时要调用的回调的接口定义。在将键事件提供给视图之前将调用回调。这仅对硬件键盘有用;软件输入法没有义务触发这个倾听者。“
但我想知道是否有办法用软键盘触发它?我知道它确实触发了某些设备,但它并不一致。
答案 0 :(得分:0)
2013年9月12日更新
看起来我的旧答案只适用于某些软键盘而不适用于其他软键盘。
我试图寻找替代方案,找不到一贯有效的方法。最后,我制作了一个自定义键盘。幸运的是,我只需要键盘上的数字,因此很容易创建。我按照本指南介绍了如何创建自定义键盘
http://www.fampennings.nl/maarten/android/09keyboard/index.htm
旧答案
我四处搜索,看起来没有办法用软键盘上的onKeyListener来监听键。但是,我只能扩展EditText并覆盖onKeyUp(),它可以正常工作。
public class CustomEditText extends EditText
{
public CustomEditText(Context context)
{
super(context);
}
public CustomEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
// Intercept keys here
return super.onKeyUp(keyCode, event);
}
}