Передать событие в родительский вид? - PullRequest
1 голос
/ 26 января 2010

У меня есть макет, который содержит пять TextView. Когда пользователь щелкает любой из пяти объектов TextView, он делает то же самое: открывает другое действие. Таким образом, поведение OnClickerListener для пяти TextView одинаково. Возможно ли, что я только добавляю OnClickListerner к одному представлению, например в макет, поэтому мне не нужно добавлять OnClickListerner для каждого из пяти TextView? Другими словами, если ни один из дочерних компонентов не получит событие CLICK, будет ли событие CLICK передано их родителю, макету?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 24 августа 2012

Приведенный выше ответ от Майры не верен. Если элемент управления самого низкого уровня (т. Е. Textview в вашем случае) имеет , а не , с ним связан OnClickListener (), то событие щелчка «всплывет» для родительского элемента. Это будет продолжаться до тех пор, пока не будет найдено представление, реализующее OnClickListener; в противном случае щелчок игнорируется (я полагаю). Я много раз пользовался этим поведением.

Кроме того, обратитесь к этому сообщению для получения более подробной информации: Stackoverflow Вопрос 8135032

Я знаю, что это очень старый пост, но хотел исправить его для всех, кто наткнулся на этот вопрос.

1 голос
/ 21 августа 2015

Возможно, дело не в этом, но недавно я потратил пару часов, пытаясь заставить TextView распространять события click для своего родителя. Я не был успешным, потому что, очевидно, если вы установите MovementMethod tv.setMovementMethod(LinkMovementMethod.getInstance()); он поймает "пузыриться" и никогда не достигнет своего родителя.

1 голос
/ 26 января 2010

Я не верю, что есть другое место для автоматического получения входных данных из всех представлений в макете.

Вы можете расширить TextView с помощью собственного поведения OnClick.

Или просто передайте один и тот же экземпляр OnClickListener всем вашим текстовым полям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...