我的布局包含一个按钮和一个editText视图。按住按钮时,我想一次又一次地按下键盘按钮,直到释放按钮。 这是基本概念:
while(button is held down){
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_P));
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,
KeyEvent.KEYCODE_P));
}
有人可以帮我吗?
答案 0 :(得分:0)
请参阅View#setOnTouchListener()和View.OnTouchListener。当您收到MotionEvent
ACTION_DOWN
时,您会重复开始(例如,在您的活动中创建Handler
,然后拨打Handler#sendMessageDelayed(),其中延迟是重复延迟您希望使用。收到每条消息后,您首先要执行密钥发送,然后再次致电sendMessageDelayed()
以安排下一次按键。在MotionEvent.ACTION_UP
,您可以拨打Handler#removeMessages()取消待处理的预定活动。
至于模拟按键事件,你描述的dispatchKeyEvent()
方法可能会有效,具体取决于你想要达到的目的:如果这对你不起作用,就必须进一步解释。