如何在gridview android上处理事件点击和长按?

Posted

技术标签:

【中文标题】如何在gridview android上处理事件点击和长按?【英文标题】:How to handle both event click and long pressed on 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 试试我的代码现在工作正常,我发现适配器中有一些愚蠢的错误。 【参考方案1】:

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

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

【讨论】:

以上是关于如何在gridview android上处理事件点击和长按?的主要内容,如果未能解决你的问题,请参考以下文章

android ListView 嵌套GridView 子Item点击加载Activity

Android中GridView通过自定义适配器实现图文视图排列

android GridView 如何禁止滚动

android 对gridview 外层linearlayout 设置点击事件,怎么还点到gridview(gridview没点击事件)?

如何设置 android gridview 怎么设置 , 一些item可以点击,另外.....

android GridView 如何设置为左右可滚动?