2013-05-29 3 views
0

Я обнаружил, что есть два стиля написания кода при обработке событий в android. Один из них вызывает метод setOnClickListener и передает анонимный класс в java, а другой добавляет атрибут xml с именем onClick и записывает соответствующий метод в Activity, который показан ниже.разный стиль ведения событий в андроиде

<Button 
android:id="@+id/idButtonTest1" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/button_test1" 
android:onClick="myClickButton1"/> 

Я хочу знать, какой из них лучше в перспективе ООП (или в перспективе MVC) и который один более легко изменить в будущем?

+1

оба одинаковые.не нет особо отличие. –

ответ

1

Оба они одинаковы для разломов.

Если вы устанавливаете прослушиватель для просмотра в xml, метод должен находиться в действии, размещающем этот элемент.

Если ваш фрагмент с прослушивателем onClick будет размещен в разных действиях, а вы установите onClick в xml. Вы должны реализовать тот же метод во всех действиях. В этом случае лучше реализовать интерфейс onClickListener в классе фрагментов и установить прослушиватели для просмотра по клику в коде в методе onCreateView().

+0

Хорошо, нет большой разницы, если вы не имеете дело с фрагментом. Я получил его. Спасибо большое. – York

0

Нет двухсторонних различий между этими двумя способами. если вы используете атрибут android:onclick, тогда java установил для вас onClickListener.

Но для поддержания мне кажется атрибут немного лучше (личное мнение). Для примера

  1. Вам не нужно устанавливать TheOnclickLister из кода. Поэтому нет необходимости раздувать представление для этого.
  2. не влияет на код, если изменился идентификатор просмотра.

Но вышеуказанные преимущества слишком незначительны.

+0

ОК, но, рассмотрев это серьезно, я предпочитаю писать onClickListener в java-коде, так как хочу немного разделить мой просмотр и контроллер. Любой способ, я получил идею. И нет большой разницы. Большое спасибо – York

+0

@henry yes определенно у вас есть свой выбор. поскольку оба они почти одинаковы, поэтому вам лучше выбрать тот, в котором вы чувствуете себя комфортно. – stinepike

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