public boolean onTouch(View arg0, MotionEvent arg1)
    {
        String string = null;
        int dx=0,dy=0,ux=0,uy=0;
        switch(arg1.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                 dx=(int)arg1.getX();
                 dy=(int)arg1.getY();
                 string=Integer.toString(dx)+"|"+Integer.toString(dy);
                 Toast.makeText(this, string, Toast.LENGTH_LONG).show();
                 break;
            case MotionEvent.ACTION_UP:
                 ux=(int)arg1.getX();
                 uy=(int)arg1.getY();
                 string+="|"+Integer.toString(ux)+"|"+Integer.toString(uy);
                 Toast.makeText(this, string, Toast.LENGTH_LONG).show();
                 break;
        }
        return false;
    }鼠标单击MotionEvent.ACTION_DOWN事件可以得到响应,可是MotionEvent.ACTION_UP不能得到响应这是什么回事?

解决方案 »

  1.   

    只有在 MotionEvent.ACTION_DOWN 返回为true时,才会继续产生MotionEvent.ACTION_MOVE/UP事件,   你可以上网查查onTouchEvent 事件。       View会优先先处理onTouchListener监听(前提是设置了)  ,不在触发onTouchEvent 事件 ;否则处理 onTouchEvent  与 onInterceptTouchEvent 触摸事件。
      你自己百度吧。。
      

  2.   

     前面回复有点问题 , 你的onTouch事件返回为false了,该View会调用onTouchEvent事件处理监听,
      如果需要继续监听事件, onTouch事件最好true 。 你可以试试看。
      

  3.   

    case MotionEvent.ACTION_DOWN:
    里边 return true;
    才可以继续监听UP事件