2016-11-20 3 views
0

私はアンドロイドジェスチャーで作業しています。 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

ログ文を追加するとどうなりますか?私はそれが何もしないので、最適化された離れてスイッチブロックを疑う。また、 'action'をログに記録してみてください。おそらく別の値がありますか? –

+0

切り替えにブレークポイントを追加する(アクション)アクションの値は何ですか? –

+3

特に、すべての 'case'が空であるため、ブレークポイントに依存しません。 '大文字小文字'にログ印刷を入れます。 –

答えて

1

コンパイル最適化では、実際には関連性がないため、最適化を完全に排除することがあります。 それぞれのケースで実際のコードを入れてみましたか、あるいは少なくともデフォルトのままでしたか?

+1

ありがとうございます。デバッガはbreakステートメントで停止しません。それは機能的なステートメントで行います。 –

0

トーストメッセージをそれぞれのケースに入れて試して、メッセージに正しい動作またはいいえが表示されていることを確認してみてください。

関連する問題