【问题标题】:How can I handle clicks on the background of an Android GridView如何处理对 Android GridView 背景的点击
【发布时间】:2016-08-10 18:31:26
【问题描述】:

当用户在 GridView 的背景上“点击”(点击)时(即在项目之外),我需要处理。

当我将 onClickListener 添加到 GridView 时,我收到以下错误:

Caused by java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
       at android.widget.AdapterView.setOnClickListener(AdapterView.java:777)

似乎父 AdapterView 覆盖了 setOnCLickListener 并且只是抛出了一个错误。

我尝试将 onClickListener 添加到网格视图的父视图中,但是当您点击 GridView 的背景时,它永远不会被调用。

如何实现这个功能?

我看到的所有 stackoverflow 问题似乎都是针对实际需要调用 setOnItemClickListener 的人,但对我来说并非如此。在这种情况下不会调用 OnItemClickListener。

【问题讨论】:

  • 请提供您的代码
  • 这很简单。将 onClickListener 添加到 GridView,您将收到错误消息。

标签: android gridview


【解决方案1】:

也许你可以在 gridview 上尝试 setOnTouchListener 并在 onTouch 方法中使用 MotionEvent.ACTION_DOWN

【讨论】:

  • 我刚刚查看了这个选项,当我单击背景时会调用它,但是当我在调用 onItemClickListener 之前单击网格中的项目时也会调用它。使用以下stackoverflow.com/a/13809839/2199475 我能够过滤掉项目点击。谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 2013-01-24
相关资源
最近更新 更多