Android 安卓-有没有一种方法可以触发软键盘的onKeyListener?
开发者参考提到OnKeyListener仅适用于硬件密钥事件: “将硬件键事件分派到此视图时要调用的回调的接口定义。将在将键事件提供给视图之前调用回调。这仅对硬件键盘有用;软件输入方法没有义务触发此侦听器。”Android 安卓-有没有一种方法可以触发软键盘的onKeyListener?,android,Android,开发者参考提到OnKeyListener仅适用于硬件密钥事件: “将硬件键事件分派到此视图时要调用的回调的接口定义。将在将键事件提供给视图之前调用回调。这仅对硬件键盘有用;软件输入方法没有义务触发此侦听器。” 但我想知道是否有办法用软键盘触发它?我知道它确实会触发某些设备,但并不一致。更新9/12/2013 看起来我以前的答案只在一些软键盘上有效,而在其他键盘上无效。 我试着四处寻找一个替代方案,但找不到任何能持续工作的方案。最后,我做了一个定制键盘。幸运的是,我的键盘只需要数字,所以很容易创建
但我想知道是否有办法用软键盘触发它?我知道它确实会触发某些设备,但并不一致。更新9/12/2013
看起来我以前的答案只在一些软键盘上有效,而在其他键盘上无效。 我试着四处寻找一个替代方案,但找不到任何能持续工作的方案。最后,我做了一个定制键盘。幸运的是,我的键盘只需要数字,所以很容易创建。我按照本指南介绍了如何创建自定义键盘。
旧答案
我四处搜索,似乎没有办法用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);
}
}