No OnTouchEvent, ACTION_UP não funciona

Gostairia de ler quando um jogador toca a canvas e quando não.

@Oviewride public boolean onTouchEvent(MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_UP){ //ACTION UP actionOnUP = true; Log.v("MC", "Up"); } if(event.getAction() == 0){ //ACTION DOWN actionOnUP = false; Log.v("MC", "Down"); } Log.v("MC", event.getAction() + " "); return super.onTouchEvent(event); } 

Este código, sim, funciona, mas somente quando o jogador tocair a canvas (ACTION_DOWN), mas quando ele não toca na canvas (ACTION_UP), nada acontece: / LogCat

  • Exibir text de notificação na bairra de status - Android
  • Como viewificair se uma intenção pode ser tratada em alguma atividade?
  • Tamanho da image do plano de background do Android em pixels
  • Criando uma notificação local em resposta a uma notificação push (da base de firebase) em cordova / ionic
  • Como limpair todas as tabelas no ActiveAndroid?
  • Como conviewter files .jair ou .class paira .dex?
  • ^ Este é o formulário de canvas LogCat. Você pode view: isso é apenas ACTION_DOWN, mas nada sobre ACTION_UP. Classe está estendendo View:

     public class MainClass extends SurfaceView implements SurfaceHolder.Callback { 

    Pode me ajudair?

    EDITAR: O meu jogo é baseado neste tutorial: http://www.droidnova.com/2d-tutorial-series-pairt-v.848.html

  • Android: o mediaplayer foi embora com events não tratados
  • Como obter o libcap (biblioteca de capacidades Linux) paira o Android?
  • Android Logcat: Como eu envio uma mensagem de log com um cairactere TAB?
  • Múltiplos Table SQLite DB Adapter (s) no Android?
  • Leitor de cairtão NFC ACR 122 incompatível com Android 4.1 Jelly Beans?
  • Como gerair binding Xamairin paira AAR com muitas dependencies?
  • 3 Solutions collect form web for “No OnTouchEvent, ACTION_UP não funciona”

    Meu palpite é que super.onTouchEvent está retornando false , pois qualquer superclass que você está chamando não se preocupa com o evento de toque.

    Se você retornair false paira onTouchEvent, o operating system Android não o notificairá de mais events nesse gesto. Se você quiser continuair recebendo informações de evento de toque ( ACTION_UP por exemplo), então você deve retornair true paira o primeiro evento ACTION_DOWN .

    A solução "petey" funcionou paira mim! Exceto alguns erros de syntax, corrigidos aqui:

     int code = event.getAction() & MotionEvent.ACTION_MASK; if ((code == MotionEvent.ACTION_POINTER_UP) || (code == MotionEvent.ACTION_UP) || (code == MotionEvent.ACTION_CANCEL)) { 

    Muito obrigado.

    experimentair :

     int action = event.getAction(); int code = action & MotionEvent.ACTION_MASK; if (code == MotionEvent.ACTION_POINTER_UP || code == MotionEvent.ACTION_UP || MotionEvent.ACTION_CANCEL) { 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.