2012-06-03 52 views
1

我想在用戶將手指放在視圖上超過1秒鐘時執行操作。OnTouch事件,手指在屏幕上但不移動

隨着OnTouch,我可以訪問ACTION_UP,ACTION_DOWNACTION_MOVE

問題是,如果用戶的手指在屏幕上,並且不移動他的手指,ACTION_MOVE不會被觸發,因此我無法執行我的操作。

我確切地說,我想在1秒後執行我的動作,但用戶仍然將其手指放在屏幕上。

事實上,我需要感覺到,即使用戶沒有移動它,用戶的手指仍然在屏幕上。

感謝您的幫助。

+0

爲什麼你不只是聽'ACTION_DOWN'並啓動一個定時器,做任何你想要的1000毫秒後做什麼? –

+0

好吧,我在'ACTION_DOWN'上啓動計時器,但是我應該在哪裏放置我的if(timer> 1000){Dotask;}'。 – Jecimi

回答

2

您可以使用TimerTask類並安排在特定時間後運行的任務。

Here is an Example.

如果用戶已經取消了他的手指前1000毫秒然後就取消計劃於ACTION_UP事件的任務。

1

或者你可以使用一個longclickListener :)

View myView = findViewById(R.id.myView); 
wv.setOnLongClickListener(new OnLongClickListener() { 

    public boolean onLongClick(View v) { 
     //DO SOMETHING HERE 
     return true; 
    } 
}); 
+0

這似乎是最好的選擇,除非他想確保它是一秒鐘,不多,不能少於 –

+0

感謝您的回答,但我確實需要處理精確的時間。所以我想我會像Sudhaker建議的那樣使用TimerTask。 – Jecimi

相關問題