Android:带按钮的 ListView -> OnItemClick 不执行任何操作
我的问题来自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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
从 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.
对于列表视图中的可点击按钮使用 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).
原因是列表视图中的按钮吸收了 onItemClickEvent。
此处有一个详细解释的教程
The reason is button in your listview absorbs the onItemClickEvent.
A well explained tutorial is here
您可以在 ListView 的 .setOnItemClickListener 中使用它
You can use this in .setOnItemClickListener of the ListView