2012-09-16 2 views
2

У меня проблема с MotionEvent.ACTION_UP Событие вызывается, прежде чем я подниму палец.MotionEvent.Action_up позвонил до начала

Вот код, который я использую. Что я должен изменить? Спасибо за любую помощь!

public boolean onTouchEvent(MotionEvent e) { 
    switch(e.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     if(checkColide(e.getX(), e.getY())) { 
      isFootballTouched = true; 
      downT = c.MILLISECOND; 
      downX = e.getX(); 
     } 
     break; 
    case MotionEvent.ACTION_MOVE: 
     //moveFootball(e.getX(), e.getY()); 
     break; 
    case MotionEvent.ACTION_UP: 
     upT = c.MILLISECOND; 
     upX = e.getX(); 
     getVelocity();   
     break; 
    }  
    return false;  
} 

ответ

3

Попробуйте возвращает истину, если один из этого 3 случая произошло

public boolean onTouchEvent(MotionEvent e) { 
switch(e.getAction()) { 
case MotionEvent.ACTION_DOWN: 
    if(checkColide(e.getX(), e.getY())) { 
     isFootballTouched = true; 
     downT = c.MILLISECOND; 
     downX = e.getX(); 
    } 
    return true; 
case MotionEvent.ACTION_MOVE: 
    //moveFootball(e.getX(), e.getY()); 
    return true; 
case MotionEvent.ACTION_UP: 
    upT = c.MILLISECOND; 
    upX = e.getX(); 
    getVelocity();   
    return true; 
}  
return false;  

}

+1

Это сделало, спасибо! Незначительное примечание, однако, вам нужно удалить перерывы – linuxer

1

Вероятно, вы должны вернуть true из onTouchEvent(). Возвращение false означает, что вы больше не заинтересованы в получении событий View. Надеюсь это поможет.

Смежные вопросы