2013-04-19 3 views
0

Я приложил сенсорную слушателя событий с объектом ImageView,Android сенсорный EventListener стрельбы Callback несколько раз

imageview_obj.setOnTouchListener(new View.OnTouchListener() 
{ 
    public boolean onTouch(View v, MotionEvent event) 
    { 
      Log.i(" info "," message");       
      return true; 
     } 
    }); 

Проблема заключается Когда я прикасаюсь к imageview_obj, обратный вызов становится срабатывает больше, чем один раз (3times в 4 раза) ..

Теперь мои вопросы

  1. Почему обратного получения срабатывает более одного раза?

  2. Как подключить onTouchListener так, чтобы я срабатывал один раз за одно касание?

ответ

0

Это было вызвано на нескольких действий, потому что события прикосновения имеет много нравится вниз, вверх и двигаться и т.д. время события, так что вы должны реализовать это с конкретным событием, как вниз время или до времени

public boolean onTouch(View v, MotionEvent event) 
{ 

    int action = event.getAction(); 
    switch(action){ 

     case Down_Action: // MotionEvent class field 
     Log.i(" info "," message");  
     break; 
     case Up_Action: 
     Log.i(" info "," message");  
     break; 
     case Move_action: 
     Log.i(" info "," message");  
     break; 

    } 

    return true; 
} 
+0

спасибо, позвольте мне попробовать раз .. –

1
imageview_obj.setOnTouchListener(new View.OnTouchListener() 
    { 
     public boolean onTouch(View v, MotionEvent event) 
     { 
       Log.i(" info "," message");       
       return true; 
        switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
//Do code here for down 
       return true; 
      case MotionEvent.ACTION_MOVE: 
      return true; 
      case MotionEvent.ACTION_UP: 
//Do code here for up 
      return true; 
       } 
      } 
     }); 
Смежные вопросы