Android:带按钮的 ListView -> OnItemClick 不执行任何操作

发布于 2024-11-14 12:55:37 字数 219 浏览 3 评论 0原文

我的问题来自ListView。如果没有按钮,ListView 的 .setOnItemClickListener 也能正常工作。 (启动活动)

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

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

My problem come from ListView. Without Buttons, the .setOnItemClickListener of the ListView work well. (start an Activity)

At time that I add Buttons into items of the ListView, Buttons are clickable but the items aren't more clickable...

I try to use myListView.setItemCanFocus(true); but it don't work...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

南汐寒笙箫 2024-11-21 12:55:37

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

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

Remove the focusable attribute from the Button would solve this problem. You could do that either in a layout xml file or java source code.

And one more tip, if you are using ImageButton instead of Button, you need setFocusable in your java code to make that work, cause the constructor of ImageButton would enabe this attribute after inflate from xml file.

情未る 2024-11-21 12:55:37

对于列表视图中的可点击按钮使用 onTouch() 回调可能会更好。然后您应该能够单击列表项和按钮。请参阅此问题了解一些代码(不需要 touchDelegate) 。

It might be better to use an onTouch() callback for the clickable button within the listview. You should then be able to click.on both the list item and the button. See this question for some code (no need for touchDelegate).

清风无影 2024-11-21 12:55:37

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

此处有一个详细解释的教程

The reason is button in your listview absorbs the onItemClickEvent.

A well explained tutorial is here

花心好男孩 2024-11-21 12:55:37

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

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

You can use this in .setOnItemClickListener of the ListView

view.findViewById(R.id.btn_id).setOnClickListener(new View.OnClickListener(){//your method})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文