Подтвердить что ты не робот

В Android; лучше ли использовать OnClickListener или использовать андроид: onClick?

Будет ли производительность работать лучше с помощью onClick? Если я использую onClick, то я не должен установить android: id (также избегать нового View.OnClickListener), вообще ли это улучшает производительность? Или это тот же эффект, что и findViewById за кулисами?

Эта страница предоставляет оба метода в качестве опции, но мало рекомендаций для любого преимущества.

http://developer.android.com/reference/android/widget/Button.html

Вот сообщение в блоге, где они считают onClick "более легким" и "улучшенным" для приложений после 1.6;

http://android-developers.blogspot.com/2009/10/ui-framework-changes-in-android-16.html

Эта новая функция уменьшает количества Java и XML, которые вы должны напишите, оставив вам больше времени на сосредоточьтесь на своем приложении.

4b9b3361

Ответ 1

Я считаю, что включение android:onClick было очень плохой идеей.

  • Вы связываете презентацию с логикой
  • Если вы не используете плагин, который его поддерживает, вам нужно будет запомнить рефакторинг XML файла, если вы решите изменить имя метода
  • Просто не выясняется связь между кнопкой в ​​вашем xml и методом в вашей активности, который реагирует на события кликов, если вы явно не видите это в вашем файле Java. С помощью подхода android:onClick вы даже можете забыть, что у вас есть кнопка в макете или метод, обрабатывающий его событие onClick.

Я бы посоветовал вам придерживаться определения OnClickListener программным путем и держать строгое разделение проблем, как указал Кори Санволд в своем комментарии.

Ответ 2

Вместо этого вы можете использовать onTouchListener. Я нашел, что это быстрее, особенно если вы хотите, чтобы действие произошло при нажатии, а не в выпуске.

Ответ 3

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

Ответ 4

Я использую android:onClick, когда мне просто нужно, чтобы мой Button можно было щелкнуть.

Если мне нужно сделать что-то еще в Button, например включить/отключить его, я бы использовал setOnClickListener(), как сказал mgv.

Также помните, что android:onClick не работает в Android 1.5.