Android:没有接收密钥的EditText的KeyListener

我有一个EditText,我想监视KeyEvents,我有一个监听器设置如下:

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; } }); 

我的问题是,当使用虚拟键盘inputEditText时,触发logging的唯一按键就是退格键。 我已validation所有其他按键甚至不触发onKey() 。 我敢肯定,这是简单的,但没有发现任何东西似乎处理这个问题。

谢谢,

保罗

Solutions Collecting From Web of "Android:没有接收密钥的EditText的KeyListener"

尝试使用此处定义的addTextChangedListener(TextWatcher watcher) ,您可以处理物理键盘和软键盘。 我希望它有帮助

从Android的参考:

http://developer.android.com/reference/android/view/View.OnKeyListener.html

View.OnKeyListener

类概述将硬件按键事件分派到此视图时要调用的callback的接口定义。 在键事件被赋予视图之前,callback将被调用。 这只对硬件键盘有用; 软件input法没有义务触发这个监听器。

看来OnKeyListener是专门为了对硬件密钥做出反应而devise的!

onKeyListener只适用于:

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

onCreate方法中设置它。