如何在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 外层linearlayout 设置点击事件,怎么还点到gridview(gridview没点击事件)?