2011-01-23 41 views
1

即使我是Android新手,我感覺比以往任何時候都更加低調。 我有我的觀點,即延伸SurfaceView,並有我覆蓋的onTouchEvent並把裏面的這個測試代碼:當我在模擬器中運行的應用程序模擬器無法制作ACTION_MOVE

if (event.getAction() == MotionEvent.ACTION_MOVE) 
    { 
    return true; 
    } 
    return false; 

然後在調試模式(使用Eclipse),有沒有辦法,我可以讓它迴歸真實。我點擊,保持點擊並拖動,然後釋放,但無論如何它始終是event.getAction == 0。

我缺少什麼?

回答

0

getAction()返回實際動作標誌和生成該事件(用於多點觸控)的指針索引的組合。

只具有動作部分,你可以做一個,並與MotionEvent.ACTION_MASK

if (event.getAction() & MotionEvent.ACTION_MASK == 
           MotionEvent.ACTION_MOVE) { ... 

,或者如果你對API> = 8,你可以直接使用getActionMasked()。如果您必須在switch中測試它,這非常有用。

similar question here

+0

謝謝。學習一些更好的調試技巧是很好的。我終於發現舊的試錯方法有什麼問題:我不知道爲什麼,但是如果你返回false,那麼你就無法處理操作。我改變了「返回false」爲真,現在一切正常。 – Sergio 2011-01-23 22:27:38

2

你應該 「的onTouchEvent」 方法返回 「真」 來避免這個問題。