我有一个想要监视KeyEvents的EditText,我有一个监听器设置如下:
mText = (EditText) this.findViewById(R.id.title);
mText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
final int view = v.getId();
switch (view) {
case R.id.title:
Log.d(LOG_TAG, "key handled");
break;
}
return false;
}
});
我的问题是,当使用虚拟键盘输入EditText时,触发记录的唯一按键是退格键。我已经确认所有其他按键都没有触发onKey()
。我确信这很简单,但在SO上找不到任何似乎与此有关的东西。
谢谢,
保
答案 0 :(得分:15)
尝试使用addTextChangedListener(TextWatcher watcher)
定义here,您可以处理物理和软键盘。
我希望它有所帮助
答案 1 :(得分:5)
来自Android参考:
http://developer.android.com/reference/android/view/View.OnKeyListener.html
View.OnKeyListener
班级概述 将硬件键事件调度到此视图时要调用的回调的接口定义。在将键事件提供给视图之前将调用回调。这仅适用于硬件键盘; 软件输入法没有义务触发此监听器。
OnKeyListener似乎只是为了对HARDWARE键做出反应而设计!
答案 2 :(得分:-1)
onKeyListener
仅适用于:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
在onCreate
方法中设置。