我想抓住按键的任何键的按下。我不想在我的活动中使用EditView或TextView,必须从我的活动中的扩展视图处理事件。Android - 获取键盘按键
我只是尝试这样做:
1)重写onKeyUp(int keyCode, KeyEvent event)
活性的方法。这不适用于软键,它只是抓住几个硬键盘。
2)创建我的OnKeyListener
并在我的视图中注册,其中包含已注册并正在运行的OnTouchListener
。这对softkeyboar根本不起作用。 3)覆盖onKeyUp(int keyCode, KeyEvent event)
查看方法。如果我设置了我的OnKeyListener,或者我没有设置它,这一切都无法工作。
4)与InputMethodManager
对象调用方法showSoftInput
并将其传递给我的View。这不起作用,因为我不得不打电话给toggleSoftInput
;也不是为了赶上关键事件。
我测试了所有只在模拟器中,但我认为这就够了。为什么从键盘上采取一个简单的关键事件是如此复杂?在Activity
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.i("key pressed", String.valueOf(event.getKeyCode()));
return super.dispatchKeyEvent(event);
}
当你检查的源代码,像'EditText'和类'TextView',看他们如何处理它,你学到了什么? – CommonsWare
研究源代码可以帮助但花费太多时间。 – Bemipefe