将 onClick 处理程序添加到列表项中的 View
我有一个 ListActivity,其中列表项是在另一个 XML 布局中定义的。列表项布局包含 ImageView、CheckBox、TextView 等。
我想要的是为每个列表项中的复选框设置一个 onClick 侦听器。这很容易。问题是我需要 onClick 处理程序来知道它在列表中的哪个位置。
在 ConvertView 膨胀后,我将侦听器附加到 getView 中的复选框。 getView 方法有一个位置参数,但我无法在 CheckBox 的 onClick 处理程序中引用它。我明白为什么,但我不知道如何解决它。
我该如何实现这个目标?
I have a ListActivity where the list items are defined in another XML layout. The list item layout contains an ImageView, a CheckBox, a TextView and such.
What I want is to set an onClick listener to the CheckBox in each list item. That is easy enough. The trouble is I need that onClick handler to know which position in the list it is.
I'm attaching the listener to the CheckBox in getView after that convertView has been inflated. The getView method has a position parameter, but I cannot reference it in the onClick handler for my CheckBox. I understand why, but I don't know how to get around it.
How do I accomplish this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我创建了这个方法来获取位置:
您将传入 buttonView 作为 v 参数
I created this method to get the position:
You would pass in buttonView as the v parameter
您可以尝试通过其位置在复选框上设置标签,当 onCheckedChangeListener 被触发时,获取复选框的标签来获取其位置。
这是一个示例代码,但我还没有尝试过
You can try setting a tag on the checkbox by its position and when the onCheckedChangeListener gets fired, get the tag of the checkbox to get its position..
here is a sample code but I haven't tried it