没有调用Android onTouch(View,MotionEvent)但是调用onTouchEvent(MotionEvent事件)?

时间:2012-02-17 06:28:55

标签: android

有谁知道为什么我的日志表明onTouch(View,MotionEvent)没有被调用。我可以看到正在调用onTouchEvent(MotionEvent事件)。两者都在Activity中重写,它实现了View.OnTouchEvent。

3 个答案:

答案 0 :(得分:4)

触摸onTouch()时会调用

View,但触摸onTouchEvent()(屏幕)时会调用Activity

onTouch()的返回值为true时,触摸事件将由onTouch()生成,否则,该事件将被传递到onTouchEvent()

希望它对你有用。

答案 1 :(得分:2)

AFAIK,活动未定义onTouch(..),但确实定义了onTouchEvent(..)。所以你要压倒后者,而只是定义前者。

此外,onTouchEvent(..)是最后的手段处理程序 - 只有在视图无法处理时才会调用它:

onTouchEvent(MotionEvent event)
Called when a touch screen event was not handled by any of the views under it.

答案 2 :(得分:0)

onTouch可以在android.some中使用,比如在ur activity中使用。不需要覆盖

      ed.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "hai",   Toast.LENGTH_LONG).show();
                return false;
            }
        });