在 Android 虚拟键盘上捕获 KeyEvent
Posted
技术标签:
【中文标题】在 Android 虚拟键盘上捕获 KeyEvent【英文标题】:Capturing KeyEvent On Android Virtual keyboard 【发布时间】:2012-09-18 14:24:52 【问题描述】:在输入 EditText 期间,有什么方法可以捕获 android 虚拟键盘上的键事件?
我想捕获 deleteKey 事件?
【问题讨论】:
常规按键监听器可能是来自虚拟键盘的处理 KeyEvents。你试过了吗? 【参考方案1】:这是一段很好的示例代码:
@Override
public boolean dispatchKeyEvent(KeyEvent e)
if (e.getKeyCode() == KeyEvent.KEYCODE_FORWARD_DEL)
/*Just switch out keycode if KEYCODE_FORWARD_DEL if its not the correct one*/
Toast.makeText(MainActivity.this, "YOU CLICKED Delete KEY",
Toast.LENGTH_LONG).show();
return true;
Toast.makeText(MainActivity.this, "Didnt work", Toast.LENGTH_SHORT)
.show();
return super.dispatchKeyEvent(e);
;
我放了祝酒词,这样您就可以测试是否按下了键。 开发者网站here 也有很多非常好的信息。
【讨论】:
【参考方案2】:此代码运行良好。请试一试。
public class MainActivity extends Activity implements View.OnKeyListener
......
public boolean onKey(View v, int keyCode, KeyEvent event)
// TODO Auto-generated method stub
// TODO Auto-generated method stub
Log.e("setOnKeyListener", "Key Code:" + String.valueOf(keyCode));
if(event.getAction() != KeyEvent.ACTION_DOWN) return true;
Log.e("setOnKeyListener-ACTION_DOWN", "Key Code:" + String.valueOf(keyCode));
return false;
【讨论】:
以上是关于在 Android 虚拟键盘上捕获 KeyEvent的主要内容,如果未能解决你的问题,请参考以下文章
当虚拟键盘出现在本机反应中时如何自动向上滚动屏幕(在android上)