Android - 带触摸和点击事件的元素

时间:2013-09-30 13:27:47

标签: java android events click touch

当遇到“点击”或“触摸”等操作时,我在尝试使元素以不同方式响应时遇到问题。当我单击元素(是一个简单的监听器,不值得粘贴代码)时,它会完美地执行操作,但完全忽略了触摸操作。那样我可以将元素关联起来区分这两个事件吗?

我是否应该将监听器应用于执行操作的视图的子级?

感谢。

修改

解决!

在调用之前添加了对触摸事件使用的检查。

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
    super.dispatchTouchEvent(event);
    if (this.onTouchEvent(event))
        return this.onTouchEvent(event);
    else
        return false;
}

1 个答案:

答案 0 :(得分:0)

您可以参考this主题寻求帮助,或直接使用answer。 祝你好运=)

@Override
public boolean onTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_DOWN) {
        // record the start time, start the timer
        mEventStartTime = ev.getEventTime();
        mHandler.postDelayed(mTask, LONG_PRESS_TIME);
    } else if (ev.getAction() == MotionEvent.ACTION_UP) {
        // record the end time, dont show if not long enough
        mEventEndTime = ev.getEventTime();
        if (mEventEndTime - mEventStartTime < LONG_PRESS_TIME) {
            mHandler.removeCallbacks(mTask);        
        }
    } else {
        // moving, panning, etc .. up to you whether you want to
        // count this as a long press - reset timing to start from now
                    mEventStartTime = ev.getEventTime();
        mHandler.removeCallbacks(mTask);
                    mHandler.postDelayed(mTask, LONG_PRESS_TIME);
    }

    return super.onTouchEvent(ev);
}