2
我有一些代碼讓我非常接近我試圖實現的目標。但有幾個問題。我想要做的是,當按下按鈕時,它將不斷調用AdvanceLog()方法。問題是,ACTION_DOWN運動事件不會繼續被調用。發生什麼是,當你按住時,第一個動作是ACTION_DOWN,其後的每個動作都是按住ACTION_MOVE。 這導致了一些問題,因爲我不是真的在尋找移動動作,更重要的是隻有重複下來的動作。有什麼建議麼?Android - OnTouch做工
advanceButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event)
{
int counter=0;
if(event.getAction()==MotionEvent.ACTION_DOWN || event.getAction()==MotionEvent.ACTION_MOVE)
{
fwdTouchCounter++;
AdvanceLog(true, true);
try
{
if(fwdTouchCounter>5)
Thread.sleep(30);
else
Thread.sleep(800);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
else if(event.getAction()==MotionEvent.ACTION_UP)
fwdTouchCounter=0;
return false;
}
});
好主意,應該夠簡單。謝謝! – Jesse 2011-03-28 00:56:59
@Jesse:如果可以,請將此答案標記爲已接受,謝謝! – 2011-03-28 11:39:48
@MattBishop嗨,我有一個問題非常類似於上面提到的。而不是檢測我的手指觸摸屏幕和靜止,它不斷觸發Action_Move!請看看我的代碼,我會很感激你的意見。 http://stackoverflow.com/questions/28074817/surfaceview-multi-touch-motionevent-action-move-gets-executed-wrongly-and-conti – user3833732 2015-02-08 13:53:41