Каков правильный способ реализации OnClickListener

С таким количеством способов реализации OnClickListener в Android мне интересно, есть ли лучшая практика или более рекомендуемый способ сделать это по сравнению с другими (например: я помню, что для чтения одних способов требуется больше памяти, чем другие)?

На данный момент мне известны четыре способа реализации OnClickListener:

  1. Сделайте так, чтобы ваша активность реализовывала интерфейс OnClickListener.
  2. Внутренний класс OnClickListener.
  3. Встроенный класс OnClickListener.
  4. Используйте атрибут android:onClick в XML-определении кнопки.

Из четырех вариантов я склоняюсь к реализации XML, поскольку она кажется более чистой, может ли кто-нибудь еще высказать свое мнение?


person Joseph Woodward    schedule 13.09.2012    source источник


Ответы (2)


Я не знаю об эффективности памяти, но вот мой подход.

  1. Мне это не нравится, для этого требуется несколько if-else (или переключателей) внутри вашего onClick, если у вас есть несколько кнопок
  2. Я использую это, если 3-й вариант делает мой метод, например, onCreate(), слишком большим и грязным.
  3. Мое любимое. это позволяет вам очень легко узнать, что делает каждая кнопка, но я обычно использую ее, если ее onClick не слишком длинная, чтобы код оставался читабельным.
  4. Я почти не использую его, он делает код чище, но я не привык к этому, так как не использую его в Java SWING.

Но в итоге, как сказал @Lazy_Ninja, все сводится к вкусу. Все 4 работают.

Я думаю, что при выборе важно, чтобы код был чистым и читабельным.

person La bla bla    schedule 13.09.2012

Смотря как. Сначала мне нравился номер 1 (сделайте вашу активность реализующей интерфейс OnClickListener), потому что так исходный код выглядит аккуратно.
Но в конце концов я остановился на 2.Inner Class OnClickListener, потому что мне было легче читать и более легко реализовать, особенно если вы используете eclipse и знаете ярлыки автодополнения.
В конце концов, я думаю, это зависит от вкуса.

person Lazy Ninja    schedule 13.09.2012