当调用onItemLongClickListener时,onItemClickListener也会起作用。

3

我有一个 ListView,在其中使用了 onItemClickListeneronLongItemClickListener 来提供不同的选项。在 jellybean 中它运行良好。但是在 Nexus5 上,当我长按 ListView 时,将同时触发 onItemClickListeneronLongItemClickListener。为什么会这样?有人知道吗?


你从onItemLongClick返回什么? - pskink
onLongItemClick将导航到另一个页面。 - android
你从onItemLongClick返回什么? - pskink
返回 false,有什么问题吗? - android
是的,它有效:) 谢谢 @pskink - android
请问当返回 true 和 false 时会发生什么,能否解释一下? - android
1个回答

9

您应该将 OnItemLongClickListener 的返回值设置为 true

private AdapterView.OnItemLongClickListener itemLongClickListener = new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        //... Do stuff
        return true;
    }
};

这就是事件告知其父级单击事件已被处理的方式。如果设置为false,则OnItemClickListener也将被触发,同时调用其监听方法。


@nail,这意味着如果我们返回false,则父项不会理解长按已完成。因此它将调用onitemclick。我是对的吗? - android
是的。如果您返回false,则告诉AdapterView您希望OnItemClick也触发,从而调用其侦听器。 - the-ginger-geek
请查看此链接以获取更多问题的答案:http://developer.android.com/reference/android/widget/AdapterView.html。 - the-ginger-geek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接