Android:单击和长按/双击有两种不同的活动?

时间:2012-11-10 17:22:04

标签: android events listener tap

我正在尝试开发一项功能,其中单击一个项目将调用Intent转到另一个Activity,长按或双击该项目会执行其他操作,例如允许您编辑文本。

到目前为止,我只能让两者同时发生,而不是单独发生。有没有人有任何想法?

public boolean onTouchEvent(MotionEvent e) {
    return gestureScanner.onTouchEvent(e);
}


public boolean onSingleTapConfirmed(MotionEvent e) { 
    Intent i = new Intent(getContext(), SecondClass.class);
    getContext().startActivity(i);

    return true; 
}

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; }
public void onLongPress(MotionEvent e) {
    Toast.makeText(getContext(), "Edit feature here", Toast.LENGTH_SHORT).show();

}

2 个答案:

答案 0 :(得分:6)

我设法解决了这个问题。事实证明,我需要做的就是将false处理程序中的返回值从true更改为onDown()

public boolean onTouchEvent(MotionEvent e) {
    return gestureScanner.onTouchEvent(e);
}

public boolean onSingleTapConfirmed(MotionEvent e) { 

    Intent i = new Intent(getContext(), SecondClass.class);
    getContext().startActivity(i);

    return true; 
}

public boolean onDown(MotionEvent e) { return true; }


public void onLongPress(MotionEvent e) {
    Toast.makeText(getContext(), "Edit Feature", Toast.LENGTH_SHORT).show();

}

答案 1 :(得分:4)

使用GestureDetector,SimpleOnGestureListener包含onSingleTapConfirmed()onLongPress()onDoubleTap()所需的方法。