2013-05-06 28 views

Trả lời

7

Bạn có thể thử Touch Listener để thực hiện việc này.

Hãy thử:

Handler handler = new Handler(); 
    b.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View arg0, MotionEvent arg1) { 
      switch (arg1.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       handler.postDelayed(run, 5000/* OR the amount of time you want */); 
       break; 

      case MotionEvent.ACTION_CANCEL: 
       handler.removeCallbacks(run); 
       break; 

      case MotionEvent.ACTION_UP: 
       handler.removeCallbacks(run); 
       break; 

      } 
      return true; 
     } 
    }); 

đâu bview mà bạn muốn thực hiện bấm dài.

Runnablerun như sau

Runnable run = new Runnable() { 

    @Override 
    public void run() { 
     // Your code to run on long click 

    } 
}; 

Hy vọng nó sẽ giúp ... :)

+0

Nó đang làm việc tốt trên giả lập nhưng không phải trên thiết bị di động. Xin hãy giúp tôi – amardeep

+0

Tôi đã chỉnh sửa câu trả lời của mình. Đã thay đổi 'ACTION_MOVE' thành' ACTION_CANCEL'. –

+1

Trình xử lý và đăngDelayed thường được sử dụng trên Android mà Timers, chủ yếu là vì chúng cho phép thực thi mã trên chuỗi giao diện người dùng, thường là những gì bạn muốn thực hiện trong trình nghe báo chí dài – njzk2

Các vấn đề liên quan