【问题标题】:How to handle both event click and long pressed on gridview android?如何在gridview android上处理事件点击和长按?
【发布时间】:2016-03-05 10:45:36
【问题描述】:

我的应用要求是处理网格视图上的点击事件和长按事件。

我都尝试过,但不能只工作长按事件工作。

如果我删除长按事件然后单击事件工作。

但是当我尝试同时放置两个事件时,只有长按事件才起作用。

那么我如何在网格视图 android 上实现这两个事件。

我搜索了很多东西,但没有找到完美的解决方案,任何人都有解决方案或想法,然后帮助我。

提前致谢。

代码:-

gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
    onGridItemClick(v,pos,id);
}
});

protected void onGridItemClick(View v, int pos, long id) {
Log.i(TAG, "onItemClick id=" + id);
}

gv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {
    return onLongGridItemClick(v,pos,id);
}
});

protected boolean onLongGridItemClick(View v, int pos, long id) {
Log.i(TAG, "onLongGridItemClick id=" + id);
return true;
}

【问题讨论】:

  • return true 将阻止点击事件继续进行。然后它将只执行 OnItemLongClickListener..
  • 我尝试返回 false 但不起作用
  • 我在我创建的虚拟项目中使用了您的代码,它似乎工作正常。问题出在其他地方。可能在 xml 中。
  • gridview 适配器有一个 imageview 和 textview,所以任何标签都添加到 imageview 或 textview 中
  • rakex thnxs 试试我的代码现在工作正常,我发现适配器中有一些愚蠢的错误。

标签: android gridview click long-press


【解决方案1】:

你应该在你的长点击监听器中返回 false。这样事件不会被消费并传递给项目点击监听器。

protected boolean onLongGridItemClick(View v, int pos, long id) {
    Log.i(TAG, "onLongGridItemClick id=" + id);
    return false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多