0

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

我应该将侦听器应用于执行操作的视图的子级吗?

谢谢。

编辑

解决!

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

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

1 回答 1

1

您可以参考线程寻求帮助,或立即使用答案。祝你好运=)

@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);
}
于 2013-09-30T13:42:53.207 回答