2015-01-13 3 views
0

Я работаю над проектом Android, где мне нужно знать, есть ли пользователь Touch Down на экране или Touch Up screen, и мне это часто нужно. Как я могу это сделать? Я использовал в Touch Event в корпусе переключателя для действия Up и action down, но это работает только один раз. Я также пробовал следующий код, но он дает мне значение var (int variable) только для первого касания.Android Screen Touch Action

мой код:

int var=-1; 
@Override 
public boolean onTouchEvent(MotionEvent event) { 

    int action = event.getAction(); 

    if(action==MotionEvent.ACTION_DOWN)var=1; 
    if(action==MotionEvent.ACTION_UP)var=0; 
    if(action==MotionEvent.ACTION_MOVE)var=1; 

    return super.onTouchEvent(event); 
} 

Я снова и снова нужно значение вар.

ответ

1

Поскольку onTouchEvent последняя точка обхода сенсорного события, он не может быть вызван, если один из детей потребили сенсорное событие уже (из, если вы вернулись false для MotionEvent.ACTION_DOWN события, указывающей, что вы не заинтересованы в этом жесте вообще).

Для вашей проблемы я предпочел бы использовать dispatchTouchEvent() вместо onTouchEvent() и отслеживать там тросы.

Для получения дополнительной информации, я очень рекомендую познакомиться с talk from Dave Smith об Android Touch System