Android:我想让孩子们获得OnClickListener,
我有一个父 LinearLayout
,其中有一些 ImageView
,现在我在父布局上设置 OnCLickListener
。如何让子 ImageView 获得点击监听器?
像这样的东西可以工作吗?:
parent.setOnCLickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(v == childImageViewA) {
//...........
}
//..........
}
});
I have a parent LinearLayout
in which has some ImageView
s, now I set OnCLickListener
on the parent layout. How can I make the children ImageViews get the click listener?
Could something like this work?:
parent.setOnCLickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(v == childImageViewA) {
//...........
}
//..........
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不太喜欢遍历所有孩子来触发父母的回调。
我会有 childImageViewA.setOnClickListener(parent) ,其中父级实现 OnClickListener 接口。
这种方法不需要循环。
I am not the biggest fan of running through all the children to get the parent's callback to fire.
I would have childImageViewA.setOnClickListener(parent) where parent implements OnClickListener interface.
This approach requires no loop.
你可以这样做:
You could do this:
您可以在子视图中编写一个方法,例如handleClickEvent(),您可以在上面@Bobbake4代码中的For循环内调用该方法。当然,您需要将其转换为子视图的类型,以便能够调用您编写的方法。
希望这是有道理的!
You could write a method, like, handleClickEvent(), in the child view which you can call inside the For loop in @Bobbake4 's code above. Ofcourse you'd need to cast it to the Child View's type, to be able to call the method that you wrote.
Hope this makes sense!!