2016-11-20 59 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

尝试通过在每种情况下放置吐司消息来测试触摸,并检查消息是否显示正确的操作或不显示。

相关问题