Эквивалент $(document).on('click') для android?

sanu0074

Можно ли в android установить обработчик события до того как элементы появятся? Например поставить OnClickListener на контейнер-обертку, и слушать там все клики, т.е. в нем всегда будет проверяться id элемента по которому кликнули. Например в javascript так можно:

$(document.body).on('click','#myElem',handler)

Тут обработчик вешается на узел body веб-страницы, он будет срабатывать по клику на элемент с id равным myElem, при этом не важно когда такой элемент был создан, до того как был установлен обработчик или после. Можно ли подобное сделать в android?

1 ответ

sanu0074

Слушатель конечно можно поставить на контейнер/обертку, главное чтобы эти клики передавались в контейнер. В контейнере всегда можно ветвиться по id клика:

layout.setOnClickListener(new View.OnClickListener(View view) {
     switch(view.getId()) {
        //blah-blah
     }
});

только надо озаботиться тем, чтобы родительский контейнер (Layout) - имел атрибут android:descendantFocusability=0, это гарантирует, что родитель будет получать фокус перед своими потомками.

licensed under cc by-sa 3.0 with attribution.