2011-06-21 118 views
0

我的佈局包含一個按鈕和一個editText視圖。按住按鈕時,我想一直反覆按下鍵盤按鍵,直到釋放按鈕。 這裏的基本概念:Android:在按鈕被選中,聚焦或按下時重複dispatchKeyEvent

while(button is held down){ 

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

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

} 

任何人可以幫助我嗎?

回答

0

請參閱View#setOnTouchListener()View.OnTouchListener。當您收到MotionEventACTION_DOWN時,您會開始一些重複操作(例如,在您的活動中創建一個Handler,並致電Handler#sendMessageDelayed(),其中延遲是您要使用的任何重複延遲。收到每條消息後,您首先會執行重點調度,然後再打電話sendMessageDelayed()計劃下一次按鍵。在MotionEvent.ACTION_UP,你會打電話Handler#removeMessages()取消原先預定的事件。

至於模擬按鍵事件,您所描述的dispatchKeyEvent()方法可能會奏效,取決於你想達到什麼樣的目標:必須進一步解釋,如果這對你不起作用。

相關問題