Android:带按钮的 ListView -> OnItemClick 啥都不做

Posted

技术标签:

【中文标题】Android:带按钮的 ListView -> OnItemClick 啥都不做【英文标题】:Android : ListView with Buttons -> OnItemClick do nothingAndroid:带按钮的 ListView -> OnItemClick 什么都不做 【发布时间】:2011-09-10 15:17:21 【问题描述】:

我的问题来自 ListView。如果没有按钮,ListView 的 .setOnItemClickListener 可以正常工作。 (开始一个活动)

当我将按钮添加到 ListView 的项目中时,按钮是可点击的,但项目不可点击...

我尝试使用myListView.setItemCanFocus(true);,但它不起作用...

【问题讨论】:

我无法回答您的问题。当您在 setOnItemClickListener 时添加 onCLickListener 和项目时,按钮是可点击的。你能更准确地解释一下你在哪里添加了什么吗? 在列表视图中有按钮听起来很奇怪。您是否考虑过使用上下文菜单? @Stuti:我看不懂你的文章。你能写“你”而不是“你”吗?我们应该在这里保持语言干净。谢谢 @WarrenFaith:非常抱歉。其实我已经很习惯了。但我会牢记在心,并尽我所能避免它。谢谢。 @Stuti 另一件事-如果您接受答案,您将提高您的评分,那么您可以做更多。每接受一个答案,您将获得额外的 5 分 【参考方案1】:

从 Button 中移除 focusable 属性可以解决这个问题。您可以在布局 xml 文件或 java 源代码中执行此操作。

还有一个提示,如果您使用 ImageButton 而不是 Button,则需要在您的 java 代码中设置 setFocusable 才能使其工作,因为 ImageButton 的构造函数会在从 xml 文件膨胀后启用此属性。

【讨论】:

这很棒。比其他解决方法快得多。谢谢!对于不知道如何执行此操作的任何人,只需将 android:focusable="false" 添加到 XML 文件中的按钮即可。 非常感谢!!!对于读者:对于 Button 这是一个真正的解决方案,我检查它。【参考方案2】:

对列表视图中的可点击按钮使用 onTouch() 回调可能会更好。然后,您应该能够单击列表项和按钮。一些代码见this question(不需要touchDelegate)。

【讨论】:

【参考方案3】:

原因是列表视图中的按钮吸收了 onItemClickEvent。

一个解释清楚的教程是here

【讨论】:

【参考方案4】:

您可以在 ListView 的 .setOnItemClickListener 中使用它

view.findViewById(R.id.btn_id).setOnClickListener(new View.OnClickListener()//your method)

【讨论】:

以上是关于Android:带按钮的 ListView -> OnItemClick 啥都不做的主要内容,如果未能解决你的问题,请参考以下文章

Android 利用ListView制作带竖线的多彩表格

Android 带checkbox的listView 实现多选,全选,反选

如何在 Android 中创建带圆角的 ListView?

Android开发 ListView的item点击事件出现引导(带箭头和描述)效果

android中每行中带有添加和删除按钮的ListView

带有 ListView 和按钮的 Android 布局