Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否将事件传递给父视图?_Java_Android - Fatal编程技术网

Java 是否将事件传递给父视图?

Java 是否将事件传递给父视图?,java,android,Java,Android,我有一个包含五个文本视图的布局。当用户单击五个TextView中的任何一个时,它将执行相同的操作:打开另一个活动。因此,五个TextView的OnClickerListener行为是相同的。 我是否可能只在一个视图中添加OnClickListerner,例如在布局中,这样我就不必在五个TextView中的每个视图中都添加OnClickListerner? 换句话说,如果没有任何子组件接收到单击事件,那么单击事件是否会传递给它们的父组件布局 谢谢。我不相信还有其他地方可以自动接收版面中所有视图的点

我有一个包含五个文本视图的布局。当用户单击五个TextView中的任何一个时,它将执行相同的操作:打开另一个活动。因此,五个TextView的OnClickerListener行为是相同的。 我是否可能只在一个视图中添加OnClickListerner,例如在布局中,这样我就不必在五个TextView中的每个视图中都添加OnClickListerner? 换句话说,如果没有任何子组件接收到单击事件,那么单击事件是否会传递给它们的父组件布局


谢谢。

我不相信还有其他地方可以自动接收版面中所有视图的点击输入

您可以使用自定义OnClick行为扩展TextView


或者,只需将相同的OnClickListener实例传递给所有文本框。

Mayra的上述回答不正确。如果最低级别的控件(即您案例中的textview)没有与之关联的OnClickListener(),则单击事件会“冒泡”到父控件。它将以这种方式继续,直到找到实现OnClickListener的视图;否则,单击将被忽略(我假定)。我多次利用这种行为

此外,有关更多详细信息,请参阅本文:


我知道这是一篇非常古老的帖子,但我想为其他偶然发现这个问题的人更正它。

可能不是这样,但我最近花了几个小时试图让TextView将其单击事件传播给其父级。我没有成功,因为显然如果你设置MovementMethod
tv.setMovementMethod(LinkMovementMethod.getInstance())

它将捕获“冒泡”并且永远不会到达其父视图。

据我所知,您可以在几乎任何视图中添加OnClickerListener。这种行为是不正确的。看看我的答案。这些事件层出不穷。