Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检测正在进行的触摸事件_Android_Touch_Android Event - Fatal编程技术网

Android 检测正在进行的触摸事件

Android 检测正在进行的触摸事件,android,touch,android-event,Android,Touch,Android Event,我目前正在尝试在我的Android应用程序中检测正在进行的触摸事件。 详细地说,我想在一个片段中识别用户是否触摸了应用程序屏幕的任何部分 Android的OnTouchListener可以正常工作,除非触摸事件持续时间超过几秒钟而不移动 例如,前1-2秒的触摸被检测到,但之后的一切都不会被检测到 是否有类似于OnPressListener或解决方法的功能?如果您试图检测的是定义良好的手势,请查看手势检测器 你可以用 aButton.setOnLongClickListener(new On

我目前正在尝试在我的Android应用程序中检测正在进行的触摸事件。 详细地说,我想在一个片段中识别用户是否触摸了应用程序屏幕的任何部分

Android的OnTouchListener可以正常工作,除非触摸事件持续时间超过几秒钟而不移动

例如,前1-2秒的触摸被检测到,但之后的一切都不会被检测到


是否有类似于OnPressListener或解决方法的功能?

如果您试图检测的是定义良好的手势,请查看手势检测器

你可以用

   aButton.setOnLongClickListener(new OnLongClickListener() {
    public boolean onLongClick(View arg0) {
        Toast.makeText(getApplicationContext(), "Long Clicked " ,
              Toast.LENGTH_SHORT).show();

        return true;    // <- set to true
    }
    });

属性在布局xml中指向您的aButton。

我终于找到了它

解决方案是使用一个简单的OnTouchListener:


你需要一个长时间的新闻听众吗?是的,类似的感谢你的回答,但我需要一个事件,只要触摸持续,而不仅仅是触摸发生后的事件。
android:longClickable="true"
private boolean pressed = false;

@Override
public boolean onTouch(View v, MotionEvent event) {
    int action = event.getAction();
    if (action == MotionEvent.ACTION_DOWN) {
        pressed = true;

    } else if ((action == MotionEvent.ACTION_UP)
            || (action == MotionEvent.ACTION_CANCEL)) {
        pressed = false;
    }

    return true;
}