Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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
Java 为什么onLongPress()不像所有其他SimpleOnGestureListener一样返回布尔值?_Java_Android - Fatal编程技术网

Java 为什么onLongPress()不像所有其他SimpleOnGestureListener一样返回布尔值?

Java 为什么onLongPress()不像所有其他SimpleOnGestureListener一样返回布尔值?,java,android,Java,Android,正如标题所述。我无法使用该事件的事实导致了一个click事件随后立即发生。现在,我手动跟踪处理潜在点击时是否发生了长按 我是不是遗漏了什么?我的意思是,我甚至无法绕过这个问题,尝试实现OnGestureListener接口,因为它预期onLongPress会出现一个空白。我的选择是什么?我认为onLongPress不喜欢onDown。这些,onLongPress的返回值不用于检查某些内容,但onDown的返回值对系统很有用,它将帮助系统识别其他事件。来自android源代码: mStill

正如标题所述。我无法使用该事件的事实导致了一个click事件随后立即发生。现在,我手动跟踪处理潜在点击时是否发生了长按


我是不是遗漏了什么?我的意思是,我甚至无法绕过这个问题,尝试实现OnGestureListener接口,因为它预期onLongPress会出现一个空白。我的选择是什么?

我认为onLongPress不喜欢onDown。这些,onLongPress的返回值不用于检查某些内容,但onDown的返回值对系统很有用,它将帮助系统识别其他事件。来自android源代码:

   mStillDown = true;
   mInLongPress = false;
   if (mIsLongpressEnabled) {
      mHandler.removeMessages(LONG_PRESS);
      mHandler.sendEmptyMessageAtTime(LONG_PRESS, mCurrentDownEvent.getDownTime() +      TAP_TIMEOUT + LONGPRESS_TIMEOUT);
    }
       mHandler.sendEmptyMessageAtTime(SHOW_PRESS, mCurrentDownEvent.getDownTime() + TAP_TIMEOUT);
      handled |= mListener.onDown(ev);
onLongPress和ShowPress只是告诉我们这些情况发生了。返回值对系统无效

如果您想要实现您的设计,您可以使用varable来检查是否发生了LongPress。
希望这能对您有所帮助。

我认为onLongPress不喜欢onDown。这些,onLongPress的返回值不用于检查某些内容,但onDown的返回值对系统很有用,它将帮助系统识别其他事件。来自android源代码:

   mStillDown = true;
   mInLongPress = false;
   if (mIsLongpressEnabled) {
      mHandler.removeMessages(LONG_PRESS);
      mHandler.sendEmptyMessageAtTime(LONG_PRESS, mCurrentDownEvent.getDownTime() +      TAP_TIMEOUT + LONGPRESS_TIMEOUT);
    }
       mHandler.sendEmptyMessageAtTime(SHOW_PRESS, mCurrentDownEvent.getDownTime() + TAP_TIMEOUT);
      handled |= mListener.onDown(ev);
onLongPress和ShowPress只是告诉我们这些情况发生了。返回值对系统无效

如果您想要实现您的设计,您可以使用varable来检查是否发生了LongPress。
希望这能对您有所帮助。

它不返回布尔值这一事实如何阻止您实现它?我可以实现它,但不能使用它来使用事件。SimpleNogestureListener中的所有其他函数都返回布尔值。我可以使用该布尔值来确定事件是否已被使用。如果它已被消耗,我将停止任何进一步的事件处理。例如,onFling返回布尔值,因此我知道在它之后不处理单击。我不能用onLongPress来解决这个问题。@TonyLukasavage你能找到解决这个问题的方法吗?或者为什么onLongPress是无效的?如果是的话,你能详细说明一下吗?谢谢,干杯。它不返回布尔值这一事实是如何阻止您实现它的?我可以实现它,但我不能使用它来消费事件。SimpleNogestureListener中的所有其他函数都返回布尔值。我可以使用该布尔值来确定事件是否已被使用。如果它已被消耗,我将停止任何进一步的事件处理。例如,onFling返回布尔值,因此我知道在它之后不处理单击。我不能用onLongPress来解决这个问题。@TonyLukasavage你能找到解决这个问题的方法吗?或者为什么onLongPress是无效的?如果是的话,你能详细说明一下吗?谢谢,干杯。