【发布时间】:2014-09-25 05:37:44
【问题描述】:
有什么区别? public boolean onKeyDown (int keyCode, KeyEvent 事件) 参数是keyCode,按钮,用户按下,但是那个KeyEvent是什么?
【问题讨论】:
有什么区别? public boolean onKeyDown (int keyCode, KeyEvent 事件) 参数是keyCode,按钮,用户按下,但是那个KeyEvent是什么?
【问题讨论】:
阅读docs
用于报告键和按钮事件的对象。 每个按键都由一系列按键事件来描述。按键以带有 ACTION_DOWN 的按键事件开始。如果该键保持足够长的时间以使其重复,则初始向下跟随带有 ACTION_DOWN 和 getRepeatCount() 的非零值的附加键事件。最后一个按键事件是按键向上的 ACTION_UP。如果按键被取消,按键事件将设置 FLAG_CANCELED 标志。
【讨论】:
KeyEvent:每次按键都由一系列按键事件来描述,按键事件一般都伴随着一个键码。
KeyCode:是定义事件的常量,定义在KeyEvent类内部。
例如,如果您想检测 KeyEvent "ENTER":
@Override
public boolean onKeyDown( int keyCode, KeyEvent event ) {
if( keyCode == KeyEvent.KEYCODE_ENTER) {
//Do something...
return true;
}
return super.onKeyDown( keyCode, event );
}
【讨论】:
KeyEvent 可用于指定详细动作,例如:
用法:
keyEvent.getAction() == KeyEvent.ACTION_DOWN
【讨论】: