您必須在onTouch方法中自己編程: 您所描述的情況是因觸摸事件觸發時使用param Event.DOWN觸發的,然後使用參數Event.MOVE在手指移動時觸發事件,最後使用Event.UP釋放時。
所以,你將不得不檢測向下觸摸事件,啓動計時器會把窗戶每隔X毫秒秒,再停檢測觸摸完成事件
這裏的時候是一個例子:
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN)
{
startTimer(); // The timer should repeatly call itself
}
else if(event.getAction()==MotionEvent.ACTION_UP)
{
stopTimer(); // The timer should stop
}
}
編輯: 如果您只需要一個isClicked()方法,就可以將布爾值存儲爲類變量:在上面的代碼中,將「startTimer()」替換爲「mClicked = true」,將「 stopTimer()「通過」mClicked = false「。然後在你的類的任何地方,你將能夠檢查按鈕當前點擊
可能重複[檢測與Android的長按](http://stackoverflow.com/questions/7919865/detecting-a-long-press-with-android) – Max
thx爲您的答案,我搜索了很多通過谷歌,但沒有找到那些話題 – Fraggles