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

Android 安卓:为什么长点击也会触发正常点击?,android,events,listview,onlongclicklistener,Android,Events,Listview,Onlongclicklistener,我有一个ListView,可供长时间单击和常规单击使用 为什么,当我长按列表项时,也会调用常规的单击事件 我需要为不同的点击设置两个单独的功能。来自: -这将返回一个布尔值,以指示您是否已使用该事件,并且不应进一步携带该事件。也就是说,返回true表示您已经处理了事件,它应该在这里停止;如果尚未处理该事件,则返回false,并且/或者该事件应继续发送到任何其他单击侦听器 您是否从onLongClick()返回true,并且仍然获得正常的单击事件 编辑以添加:对于列表视图,您可能正在使用OnIte

我有一个ListView,可供长时间单击和常规单击使用

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

我需要为不同的点击设置两个单独的功能。

来自:

-这将返回一个布尔值,以指示您是否已使用该事件,并且不应进一步携带该事件。也就是说,返回true表示您已经处理了事件,它应该在这里停止;如果尚未处理该事件,则返回false,并且/或者该事件应继续发送到任何其他单击侦听器

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


编辑以添加:对于列表视图,您可能正在使用
OnItemLongClickListener
。there使用一个类似的布尔返回值来指示它是否使用了事件。

请确保您正在为
onClick
方法重写
OnClickListener
。另外,请确保您正在覆盖
onLongClick
方法的
onLongClick
侦听器。并确保您的
onLongClick
方法返回
true
,因为这将使用
onClick

以更简单的方式重新显示答案:

鉴于:

@Override
public boolean onLongClick(View view) {

    return true; // or false
}
  • return true
    表示事件已被消耗。它被处理了。不会通知其他单击事件
  • return false
    表示事件未被消耗。任何其他单击事件将继续接收通知

因此,如果您不希望
onLongClick
onLongClick
之后也触发
onClick
,那么您应该从
onLongClick
事件中
返回true

您可以实现
设置onlongclickstener
创建
新视图.OnClickListener()的实例
,如果创建长时间单击并实现正常的OnclickListener,则会出现单击激活该方法的错误。
您应该使用
新建视图.OnLongClickListener()
仅捕获长时间单击

设置
myListView.setOnItemLongClickListener(此)选项,您必须重写函数
public boolean nominglongclick(…)
。在这里,您只需
返回true
,这表示长点击已激活,并将在常规点击时取消触发。如果您返回false,那么它也会触发常规单击。如果我需要区分长单击和常规单击以根据that@erichamion我试过你解决类似问题的方法,但没有成功。我很感激您能提供的任何见解或想法,位于此处:超级完美答案如果我们输入真值,那么它只处理长点击如果输入假值,那么点击和长按事件都会立即发生。我在我的onLongClick方法中添加了真值,但仍然存在一个问题,即我的onClick方法此后不会触发。如果您有任何关于如何解决问题的想法或想法,我将不胜感激