Когда я использую XML для разработки макета, я использую findViewById()
в java-коде для загрузки представлений и установки для них слушателей.
Это правильно, что я делаю? Может быть, можно установить слушателей в XML или что-то еще?
Большинство людей устанавливают своих слушателей в коде. Иногда бывает проще сделать это в коде, потому что вам часто приходится добавлять или удалять слушателей на основе какого-либо действия или состояния.
Тем не менее, 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
. Я также считаю, что это должно быть публично.
Итак, насколько наилучшим образом? Это вам. Оба маршрута жизнеспособны. Стоит отметить, что это полезно только для слушателей кликов, а не для других типов слушателей.
Существует атрибут onClick, который вы можете использовать внутри своего xml.
Вы можете указать атрибут android:onClick
при описании вашего View
в XML. Значение этого атрибута - это имя метода, который будет вызываться в вашем событии View
onClick
. Затем вы должны определить этот метод как общедоступный в своем коде, и вы можете передать туда объект " View
который определит, что " View
из тех, что вы описали в xml с тем же android:onClick
атрибуты android:onClick
получили событие касания от пользователя.
вы можете установить onClick
но я думаю, что об этом