首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓GridView未触发OnItemClickListener

安卓GridView未触发OnItemClickListener
EN

Stack Overflow用户
提问于 2011-11-18 22:00:27
回答 6查看 26.5K关注 0票数 31

我有一个由适配器填充的Gridview,它返回LinearLayouts,每个都包含一个ImageButton和TextView。

在适配器中,我将onClick和onLongClick事件绑定到ImageButton。

我正在尝试将OnItemClickListener绑定到网格视图,但是我不知道为什么onItemclicked从来没有启动。

这是我第六个小时没吃任何东西了。

顺便说一句,OnItemSelectListener在网格上工作得很好。

我正在检查是否有一些代码意外地处理了onItemClicked,但仍然无法捕获。

我需要帮手。

代码语言:javascript
运行
复制
gridView = (GridView) layoutInflater.inflate(R.layout.gridview, null);
gridView.setOnItemClickListener(new ItemClickListener());
. 
.
.

//inner handler class
class ItemClickListener implements AdapterView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        Toast.makeText(mainActivity.getApplicationContext(),view + " clicked at pos " +            
        i,Toast.LENGTH_SHORT).show();
    }
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-21 15:33:57

不要在网格中使用可单击对象。在这种情况下,安卓无法处理GridView的点击事件。

取而代之的是,使用一些东西来显示类似的用户界面视图。然后处理该对象的单击操作。

请勿:Button放在GridView中以执行一些单击操作。

Do:ImageView替换为ImageButton,并处理ImageView的点击事件。

票数 83
EN

Stack Overflow用户

发布于 2014-11-21 16:26:25

如果希望使用ButtonImageButton,则需要在小部件的xml代码中编写这些属性。

代码语言:javascript
运行
复制
android:focusable="false"
android:focusableInTouchMode="false"

这对我很管用。

但在GridView中,尽量避免使用这些小部件。您可以使用任何其他小部件来代替这些小部件(如ImageView或任何其他小部件)。

票数 17
EN

Stack Overflow用户

发布于 2012-12-29 04:52:19

还要确保您的ListAdpter返回true

整数公共布尔值isEnabled(

_position)

您想要单击的位置。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8183609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档