2015-12-31 82 views
1

我有一個Click功能並長按同一個按鈕。實現了長按事件,但是,我需要分別找到按鈕UP_EVENT和DOWN_EVENTS。 我如何使用OnLongClickListener如何分離按鈕Long按鈕按向上和向下事件

View.OnLongClickListener listener = new View.OnLongClickListener() { 

      @Override 
      public boolean onLongClick(View view) { 

       return true; 
      } 

     }; 

回答

1

Implement a TouchListener within the onLongClickListener實現:

View.OnLongClickListener listener = new View.OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View view) { 
      view.setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View v, MotionEvent event) { 
        switch (event.getAction()) { 
         case MotionEvent.ACTION_DOWN: 
          // PRESSED 
          return true; // if you want to handle the touch event 
         case MotionEvent.ACTION_UP: 
          // RELEASED 
          return true; // if you want to handle the touch event 
        } 
        return false; 
       } 
      }); 
      return true; 
     } 

    }; 
+1

謝謝,我已經修改了一點,做工精細。 –

0

要檢測你需要實現OnTouchListenerACTION_UPACTION_DOWN事件。

0

到sepate,你可以做這樣

@Override 
public boolean onTouchEvent(MotionEvent ev) { 
    switch (ev.getAction() & MotionEvent.ACTION_MASK) { 
     case MotionEvent.ACTION_DOWN: 

      break; 
     case MotionEvent.ACTION_CANCEL: 
     case MotionEvent.ACTION_UP: 
      if (isOnClick) {      
       //TODO onClick code 
      } 
      break; 
     case MotionEvent.ACTION_MOVE: 

      } 
      break; 
     default: 
      break; 
    } 
    return true; 
}