Можно ли установить прослушиватель событий в XML?

1

Когда я использую XML для разработки макета, я использую findViewById() в java-коде для загрузки представлений и установки для них слушателей.

Это правильно, что я делаю? Может быть, можно установить слушателей в XML или что-то еще?

  • 0
    как нажатия кнопки?
Теги:
layout
event-listener

4 ответа

3
Лучший ответ

Большинство людей устанавливают своих слушателей в коде. Иногда бывает проще сделать это в коде, потому что вам часто приходится добавлять или удалять слушателей на основе какого-либо действия или состояния.

Тем не менее, Android также дает вам возможность установить OnClickListener для любого View в XML. Вот пример:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onActionClick"
    android:text="Action" />

Используя атрибут onClick, вы назначаете имя метода, который будет обрабатывать щелчок. Этот метод должен существовать в том же Context что и View, поэтому в той же Activity. Так, например, мне пришлось бы реализовать этот метод:

public void onActionClick(View v) {

    // Do stuff for my "Action" button...
}

Я считаю, что он должен иметь параметр View, как и реализация OnClickListener. Я также считаю, что это должно быть публично.

Итак, насколько наилучшим образом? Это вам. Оба маршрута жизнеспособны. Стоит отметить, что это полезно только для слушателей кликов, а не для других типов слушателей.

1

Существует атрибут onClick, который вы можете использовать внутри своего xml.

  • 0
    это работает только на Android 1.6 и выше.
1

Вы можете указать атрибут android:onClick при описании вашего View в XML. Значение этого атрибута - это имя метода, который будет вызываться в вашем событии View onClick. Затем вы должны определить этот метод как общедоступный в своем коде, и вы можете передать туда объект " View который определит, что " View из тех, что вы описали в xml с тем же android:onClick атрибуты android:onClick получили событие касания от пользователя.

0

вы можете установить onClick но я думаю, что об этом

Ещё вопросы

Сообщество Overcoder
Наверх
Меню