2016-11-20 61 views
0

我正在使用android手勢。 switch語句看起來是正確的,但是沒有做任何事情。這是我的活動的代碼。有人看到一個問題?謝謝。Java開關語句繞過所有情況,甚至默認

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    mGestureCompat.onTouchEvent(event); 

    final int action = event.getActionMasked(); 
    switch (action) 
    { 
     case 0://MotionEvent.ACTION_DOWN: 
      break;       //breakpoint here - never triggered 
     case 3://MotionEvent.ACTION_CANCEL: 
      break;       //breakpoint here - never triggered 
     case 2://MotionEvent.ACTION_MOVE: 
      break;       //breakpoint here - never triggered 
     case 1://MotionEvent.ACTION_UP: 
      break;       //breakpoint here - never triggered 
     case 4://MotionEvent.ACTION_OUTSIDE: 
      break;       //breakpoint here - never triggered 
     default: 
      break;       //breakpoint here - never triggered 
    } 
    return true;       //breakpoint here - triggered every time 
} 
+0

如果添加一堆日誌語句,會發生什麼?我懷疑開關塊在優化過程中因爲它沒有做任何事情。還嘗試記錄'行動',也許它還有另一個價值? –

+0

添加一個斷點來切換(動作)動作的值是什麼? –

+3

我不會依賴斷點,特別是因爲每個case都是空的。把日誌打印在你的案例中。 –

回答

1

也許編譯優化完全消除,因爲幾乎沒有什麼相關的。 你有沒有嘗試在每種情況下,或至少在默認情況下放一些真實的代碼?

+1

謝謝。調試器不會在break語句處停止。它在功能性聲明中進行。 –

0

嘗試通過在每種情況下放置吐司消息來測試觸摸,並檢查消息是否顯示正確的操作或不顯示。

相關問題