【问题标题】:When calling onItemLongClickListener,onItemClickListener also works调用 onItemLongClickListener 时,onItemClickListener 也有效
【发布时间】:2014-10-27 11:07:26
【问题描述】:

我有ListView,其中onItemClickListeneronLongItemClickListener 用于不同的选项。它在jellybean 中运行良好。但是在Nexus5 中,当我长按ListView 时,onItemClickListeneronLongItemClickListener 都会被调用。为什么会这样?有人知道吗?

【问题讨论】:

  • 你从onItemLongClick返回什么?
  • onLongItemClick 将导航到另一个页面
  • 你从onItemLongClick返回什么?
  • return false,有什么问题吗?
  • 是的,它有效:) 谢谢@pskink

标签: android android-listview onitemclicklistener onitemlongclicklistener


【解决方案1】:

你应该将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,则父级不理解 longclick 已完成。所以它会调用onitemclick。我说的对吗?
  • 是的。如果你返回 false,你告诉 AdapterView 你希望 OnItemClick 也被触发,这反过来会调用它的监听器
  • 很高兴。如果您有更多问题,请查看此内容:) developer.android.com/reference/android/widget/AdapterView.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多