2012-05-16 3 views
1

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

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

+0

как кнопка нажимает? – tyczj

ответ

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 и выше. – Raunak

0

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

1

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

Смежные вопросы