2013-04-26 8 views
5

Mam widok w mojej aplikacji na Androida, który powinien być stale aktualizowany po naciśnięciu ekranu. Większość wykrytych przeze mnie słuchaczy unieważnia widok tylko raz, gdy użytkownik dotknie ekranu po raz pierwszy lub gdy użytkownik usunie rękę z ekranu.Android Listener wykrywa naciśnięcie ekranu

Czy istnieje coś takiego, jak słuchacz, który jest stale wyzwalany tak długo, jak dotyka ekranu? Czy jest jakiś inny sposób na zrobienie tego? Wiem, że to brzmi jak coś naprawdę prostego, ale nie znalazłem sposobu, żeby to zrobić.

Odpowiedz

8

Przesłoń onTouch() i ustaw flagę w ACTION_DOWN. Dopóki ACTION_UP nie zostanie wywołany, użytkownik dotyka ekranu.

boolean pressed = false; 

@Override 
    public boolean onTouch(View v, MotionEvent event) { 

     //int action = event.getAction(); 
     switch (event.getAction()){ 
     case MotionEvent.ACTION_DOWN: 
      pressed = true; 
     break; 

     case MotionEvent.ACTION_MOVE: 
      //User is moving around on the screen 
     break; 

     case MotionEvent.ACTION_UP: 
      pressed = false; 
     break; 
     } 
     return pressed; 
    } 
+0

Jak mogłem o tym nie myśleć? Dzięki człowieku, który działał idealnie. – Apoz

+1

IMO instrukcja return powinna być "return pressed"; zamiast "return false". –

+0

@AlejandroColorado Ahh masz rację. Dzięki za połów –