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

mel*_*owg 119 events android listview onlongclicklistener

我有一个带有监听器的ListView,可以进行长时间的点击和定期点击.

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

我需要为不同的点击提供两个单独的功能.

eri*_*ion 272

来自事件监听器:

onLongClick() - 返回一个布尔值,表示您是否已经消耗了该事件,并且不应该进一步携带它.也就是说,返回true表示你已经处理了这个事件,它应该在这里停止; 如果您尚未处理它并且/或该事件应继续到任何其他点击监听器,则返回false.

您是否true从您的返回onLongClick()并仍然获得正常的点击事件?

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


Sur*_*gch 44

用简单的术语重述答案:

鉴于:

@Override
public boolean onLongClick(View view) {

    return true; // or false
}
Run Code Online (Sandbox Code Playgroud)
  • return true表示事件已被消耗.它被处理了.不会通知其他点击事件.
  • return false表示事件未被消耗.任何其他点击事件将继续接收通知.

因此,如果你不想onClick在一个onLongClick之后被触发,那么你应该return trueonLongClick事件中获得.

  • 超级完美的答案,如果我们把真正的价值然后它只处理长点击如果我们放假,然后点击和长按事件立即发生 (2认同)

Ale*_*ood 19

确保你完全掌控OnClickListener自己的onClick方法.还要确保你OnLongClickListeneronLongClick方法是最重要的.并确保您的onLongClick方法返回true,因为这将消耗onClick.