Android:为什么长时间点击也会触发正常点击?

我有一个ListView与听众进行长时间点击和定期点击。

为什么当我长按列表项时,常规的点击事件也会被调用?

我需要两个不同的点击function。

来自事件监听者 :

onLongClick() – 这将返回一个布尔值来指示是否消耗了事件,并且不应该继续进行。 也就是说,返回true表示你已经处理了事件,它应该停在这里; 如果你还没有处理它和/或事件应该继续到其他任何点击监听器,则返回false。

你是从onLongClick()返回true ,仍然得到正常的点击事件?

编辑添加 :对于ListView,您可能正在使用OnItemLongClickListeneronItemLongClick()在那里使用一个类似的布尔返回值来表明它是否消耗了事件。

确保你的onClick方法重写了OnClickListener 。 另外请确保你的onLongClick方法重写OnLongClickListener 。 并确保您的onLongClick方法返回true ,因为这将消耗onClick

用简单的语言重申答案:

鉴于:

 @Override public boolean onLongClick(View view) { return true; // or false } 
  • return true意味着事件被消耗。 这是处理。 没有其他的点击事件会被通知。
  • return false意味着事件没有被消耗。 其他任何点击事件都将继续收到通知。

因此,如果您不想在onLongClick之后触发onClick ,则应该从onLongClick事件return true