Android:在选择,聚焦或按下按钮时重复dispatchKeyEvent

时间:2011-06-21 00:38:59

标签: java android

我的布局包含一个按钮和一个editText视图。按住按钮时,我想一次又一次地按下键盘按钮,直到释放按钮。 这是基本概念:

while(button is held down){

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,
                KeyEvent.KEYCODE_P));

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,
                KeyEvent.KEYCODE_P));

}

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

请参阅View#setOnTouchListener()View.OnTouchListener。当您收到MotionEvent ACTION_DOWN时,您会重复开始(例如,在您的活动中创建Handler,然后拨打Handler#sendMessageDelayed(),其中延迟是重复延迟您希望使用。收到每条消息后,您首先要执行密钥发送,然后再次致电sendMessageDelayed()以安排下一次按键。在MotionEvent.ACTION_UP,您可以拨打Handler#removeMessages()取消待处理的预定活动。

至于模拟按键事件,你描述的dispatchKeyEvent()方法可能会有效,具体取决于你想要达到的目的:如果这对你不起作用,就必须进一步解释。