【发布时间】:2012-07-01 15:52:27
【问题描述】:
我想捕捉软键盘上任意键的按下。我不想在我的 Activity 中使用 EditView 或 TextView,必须从我的 Activity 中的扩展视图处理该事件。
我刚试过这个:
1) 覆盖onKeyUp(int keyCode, KeyEvent event) Activity 方法。这不适用于软键盘,它只会捕获几个硬键盘。
2) 创建我的OnKeyListener 并将其注册到我的视图中,其中包含一个已注册且正在工作的OnTouchListener。这对软键盘根本不起作用。
3) 覆盖onKeyUp(int keyCode, KeyEvent event) View 方法。如果我设置我的 OnKeyListener 或不设置它,这根本不起作用。
4) 使用InputMethodManager 对象调用showSoftInput 方法并将其传递给我的视图。这对抬起键盘也不起作用,确实我必须打电话给toggleSoftInput;也没有赶上关键事件。
我只在模拟器中测试了所有内容,但我认为这已经足够了。为什么从键盘获取一个简单的按键事件如此复杂?
【问题讨论】:
-
当您检查
EditText和TextView等类的源代码时,看看它们是如何处理的,您学到了什么? -
研究源代码会有所帮助,但是太费时间了。
标签: java android keyboard keyevent android-input-method