Java 是否将事件传递给父视图?
我有一个包含五个文本视图的布局。当用户单击五个TextView中的任何一个时,它将执行相同的操作:打开另一个活动。因此,五个TextView的OnClickerListener行为是相同的。 我是否可能只在一个视图中添加OnClickListerner,例如在布局中,这样我就不必在五个TextView中的每个视图中都添加OnClickListerner? 换句话说,如果没有任何子组件接收到单击事件,那么单击事件是否会传递给它们的父组件布局Java 是否将事件传递给父视图?,java,android,Java,Android,我有一个包含五个文本视图的布局。当用户单击五个TextView中的任何一个时,它将执行相同的操作:打开另一个活动。因此,五个TextView的OnClickerListener行为是相同的。 我是否可能只在一个视图中添加OnClickListerner,例如在布局中,这样我就不必在五个TextView中的每个视图中都添加OnClickListerner? 换句话说,如果没有任何子组件接收到单击事件,那么单击事件是否会传递给它们的父组件布局 谢谢。我不相信还有其他地方可以自动接收版面中所有视图的点
谢谢。我不相信还有其他地方可以自动接收版面中所有视图的点击输入 您可以使用自定义OnClick行为扩展TextView
或者,只需将相同的OnClickListener实例传递给所有文本框。Mayra的上述回答不正确。如果最低级别的控件(即您案例中的textview)没有与之关联的OnClickListener(),则单击事件会“冒泡”到父控件。它将以这种方式继续,直到找到实现OnClickListener的视图;否则,单击将被忽略(我假定)。我多次利用这种行为 此外,有关更多详细信息,请参阅本文:
我知道这是一篇非常古老的帖子,但我想为其他偶然发现这个问题的人更正它。可能不是这样,但我最近花了几个小时试图让TextView将其单击事件传播给其父级。我没有成功,因为显然如果你设置MovementMethod
tv.setMovementMethod(LinkMovementMethod.getInstance())代码>
它将捕获“冒泡”并且永远不会到达其父视图。据我所知,您可以在几乎任何视图中添加OnClickerListener。这种行为是不正确的。看看我的答案。这些事件层出不穷。