是否可以这样呢?
按下去的时候记录当前时间downT
弹起来的时候取当前时间upT
自定义一个长按的值LONGT在弹起来的时候:
     如果 upT-downT>LONGT 就算长按.触发长按事件

解决方案 »

  1.   

    使用onLongClick;或者用onTouch,ACTION_DOWN的时候可以不动作,在TuningUp的时候动作.
      

  2.   


    写错了,ACTION_DOWN ACTION_UP
      

  3.   

    我觉得结合上面两者的方法就可以了 MotionEvent类里面有判定动作的借口getAction()
    判定ACTION_DOWN ACTION_UP , 然后响应  自己获取时间对比吧 达到一定时间 则为长按
      

  4.   

    在代码中这么写对不?
         public boolean onLongClick () {
        
         System.out.println("GGGGGGGGGGGGGGGG");   
    return false;
        
        }
      

  5.   


    大概明白你的意思了,你是希望常按住的时候触发事件,而不是长按弹起来之后再触发是吧?
    但是无论怎么样你都是需要判断是不是长按状态的
    这样哪那就用线程监视MotionEvent的状态试试看吧
    用一个变量保存MotionEvent的状态
    当按下的时候记录当前状态为按下并启动线程
    线程内部处理让线程自己休眠若干时间此事件既是长按的临界时长
    然后判断其状态若还处在按下状态那就是长按了对吧?
    这中情况下就可以做你希望的事情了。
    若是其他状态就就结束线程吧。但记得还有移动和弹起的时候要标记其状态不然永远都是按下状态就要出问题了
    不知道可否实现LZ试试有时间可以试试此愚见
      

  6.   


    还是用onTouch,ACTION_DOWN的时候记时,起个记时线程,你自己定个时间,超过了响应,ACTION_UP的时候可停止,或者不做任何操作.
      

  7.   


    onLongClick 就是这样用的. public boolean onLongClick(View v) {
    // TODO Auto-generated method stub switch (v.getId()) {
    case R.id.a:
    break; case R.id.b:
    break;
    }
    return false;
    }
      

  8.   


    谢谢,但我还有个问题就是当我执行 onLongClick时如何获取我点击屏幕上的坐标即X和Y呢?
      

  9.   


    用onTouchEvent可以获取坐标.        @Override
            public boolean onTouchEvent(MotionEvent event) {
                float x = event.getX();
                float y = event.getY();
                
                return true;
            }
      

  10.   

    不行呀,我要在onLongClick方法里或得坐标而不是通过onTouch获得
      

  11.   

    用view.getLeft();view.getTop()等试试,你想获取什么坐标?
      

  12.   

    用onTouchEvent不好吗?照样可以实现onLongClick的作用,而且可以获得屏幕点击的坐标.
      

  13.   


    我就想获取当我某个View触发onLongClick事件时,获取点击View时获取屏幕坐标
      

  14.   

    那就用view.getLeft();view.getTop()这些参数看看。什么应用有这个需求
      

  15.   


    onTouchEvent并没有长按这个事件,我想直接用系统自带的onLongClickc事件
      

  16.   


    是没长按的事件,但可以自己设定记时器.那个view.getLeft();view.getTop()不能用吗?
      

  17.   

    view.getLeft();view.getTop()用不了,因为我的View是一个铺满整个屏幕的图片,因此这两个就没有用了,至于定时器,我还没想出怎么做呢,因为我做的是一个跟地图有关的程序,当我在屏幕的地图上持续按一段时间的时候,有一个小卡片就会自动从屏幕右上方出来,现在就这个持续按一段时间没发完成,还请多多指教!