Разница между событием OnClick () и OnClickListener?

В большинстве моих проектов я всегда использую событие onclick() . Но я читал о OnClickListener() . Может ли кто-нибудь сказать, в чем разница между этими двумя? И какой из них лучше всего использовать в приложении Android ?.

Я не уверен, что вопрос ясен. View.OnClickListener – это интерфейс, который определяет метод onClick(View) . Если у вас есть class, который намеревается прослушивать клики, вы должны реализовать интерфейс (если он еще не расширяет class, который делает), и реализовать этот метод тоже. Вы должны использовать оба; они не являются альтернативами.

OnClickListener – это интерфейс, который вам нужно реализовать, и его можно установить в виде Java-кода.

В последнее время андроид добавил атрибут xml в представления под названием android:onclick , которые могут использоваться для обработки кликов непосредственно в действии вида без необходимости реализации какого-либо интерфейса.

Оба функционируют одинаково, только один устанавливается через java-код, а другой через xml-код.

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

  1. Функция onClick с привязкой к функциям в XML-макете является привязкой между onClick и функцией, которую он вызовет. Функция должна иметь один аргумент ( View ), чтобы функция onClick функционировала.

  2. OnClickListener – это интерфейс, который может реализовать любой class. Поскольку это интерфейс, который может реализовать любой class, он имеет большую гибкость и более сложный по своей форме. Немного гибкости, которые вы могли бы использовать с OnClickListener

    • Вы можете легко поменять одну реализацию прослушивателя на другую, если вам нужно.
    • OnClickListener позволяет вам отделить действие / поведение события click от View которое вызывает событие. Хотя для простых случаев это не так уж и важно, для комплексной обработки событий это может означать лучшую читаемость и ремонтопригодность кода
    • Поскольку OnClickListener является интерфейсом, class, который его реализует, обладает гибкостью при определении переменных экземпляра и методов, необходимых для обработки события. Опять же, это не очень важно в простых случаях, но для сложных случаев мы не хотим, чтобы мы смешали переменные / методы, связанные с обработкой событий, с кодом представления, который запускает событие.

OnClickListener – это то, что ждет, когда кто-то на самом деле щелкнет, onclick определяет, что происходит, когда кто-то нажимает

слушатель – это class, метод onclick – это метод, это различие не очень полезно в простых случаях, но если вы хотите быть более сложным, оно становится более необходимым

 Button button = (Button)findViewById(R.id.buttonId); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Do stuff } }); 

OnClickListener – это интерфейс, а onClick – метод OnClickListener .

Мы используем

  public void button_onClick_name(View v) { ------- } 

определить метод из classа. Но Чтобы определить компонент события Click в classе, мы используем onclick listener.

Есть несколько причин, по которым вы, возможно, захотите программно установить OnClickListener . Во-первых, если вы когда-либо захотите изменить поведение своей кнопки во время работы вашего приложения. Вы можете указать свою кнопку по другому методу целиком или просто отключить кнопку, установив OnClickListener который ничего не делает.

Когда вы определяете прослушиватель, используя атрибут onClick , представление ищет метод с этим именем только в его активности хоста. Программная установка OnClickListener позволяет вам управлять поведением кнопки из-за чего-то другого, кроме хост-активности. Это станет очень актуальным для Fragments Fragments всегда должны использовать OnClickListeners для управления своими кнопками, поскольку они не являются действиями и не будут искать слушателей, определенных в onClick .

Мы используем OnClick в xml и OnClickListner в java коде. Оба используются для выполнения функции.

Рассмотрим «OnClickListener» как парень, который ждет, когда ваш пользователь нажмет кнопку вашего приложения. Тогда ваш парень выполнит ваш метод OnClick () .

Вы должны поместить идентификатор в свою кнопку в свой XML-файл, а затем указать ему имя в файле MainActivity.java. Затем установите для своего парня прослушиватель кликов. И добавьте свой метод onClick. Вот почему onClick привязан к интерфейсу View.OnClickListener: https://developer.android.com/reference/android/view/View.OnClickListener.html

Пример :

 Button myButton = (Button)findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener(){ @override public void onClick(View v) { // your method... } } 

Вы можете добавить атрибут android:onClick="your_method" в свой XML.

Пример:

   

Когда мы хотим добавить кнопку click listener к кнопке в Java-коде, мы используем OnClickListener .
Когда мы хотим добавить кнопку click listener к кнопке в файле макета, мы используем android:onClick="your_method"
Если вы используете вариант XML, вы должны реализовать your_method в своем classе приложения.

Есть несколько причин, по которым вы, возможно, захотите программно установить OnClickListener. Во-первых, если вы когда-либо захотите изменить поведение своей кнопки во время работы вашего приложения. Вы можете указать свою кнопку по другому методу целиком или просто отключить кнопку, установив OnClickListener, который ничего не делает.

Когда вы определяете прослушиватель, используя атрибут onClick, представление ищет метод с этим именем только в его активности хоста. Программная установка OnClickListener позволяет вам управлять поведением кнопки из-за чего-то другого, кроме хост-активности. Это станет очень актуальным, когда мы узнаем о fragmentах, которые в основном представляют собой мини-действия, позволяющие создавать многоразовые коллекции представлений с их собственным жизненным циклом, которые затем могут быть собраны в действия. Фрагменты всегда должны использовать OnClickListeners для управления своими кнопками, поскольку они не являются действиями, и не будут искать слушателей, определенных в onClick.

каждый упомянул о OnClickListener OnClickListener, который всегда использовался. Я хочу добавить еще один point android:onClick работает как метод, и ему не нужно ссылаться, поэтому полезно, когда вам нужно добавить кнопку после выполнения какой-либо задачи, чтобы вы не ссылались на нее для OnClickListener .

example когда мы создаем viewpager только с макетом (без fragmentов), если вы помещаете кнопку в любой макет, она добавляется только тогда, когда макет видимый, поэтому вы не можете использовать метод findViewById для Button в этом случае android:onClick onClick стало полезно просто поместить этот метод в действии !!

Вот простая терминология. Если у вас дома, и я хочу позвонить кому-то .. можно напрямую позвонить, и они могут слушать u. (используйте onclick). Но если вы находитесь снаружи, и вы хотите позвонить кому-то дома, вам нужно использовать либо телефон, либо Интернет. (Нужно использовать onclicklistener). В Android все начинается с дома, т.е. main_activity. Это способ, которым андроид облегчает работу; когда у вас есть одна активность, вам не нужно присоединять слушателя, создавать объект и определять его. Просто используйте onClick. Onclicklistener обычно используются во fragmentах. Так что продолжайте кодирование.

Есть несколько причин, по которым вы, возможно, захотите программно установить OnClickListener . Во-первых, если вы когда-либо захотите изменить поведение своей кнопки во время работы вашего приложения. Вы можете указать свою кнопку по другому методу целиком или просто отключить кнопку, установив OnClickListener который ничего не делает.

Когда вы определяете прослушиватель, используя атрибут onClick , представление ищет метод с этим именем только в его активности хоста. Программная установка OnClickListener позволяет вам управлять поведением кнопки из-за чего-то другого, кроме хост-активности. Это станет очень актуальным, когда мы поговорим о fragmentах, которые в основном представляют собой мини-действия, позволяющие создавать многоразовые коллекции представлений с их собственным жизненным циклом, которые затем могут быть собраны в действия. Фрагменты всегда должны использовать OnClickListeners для управления своими кнопками, поскольку они не являются действиями, и не будут искать слушателей, определенных в onClick .

  • Как правильно начать работу с PostExecute в Android?
  • Выключить автозапуск для EditText?
  • VectorDrawable - доступен ли он как-то для до-Lollipop версий Android?
  • Как добавить Stacktrace или вариант отладки при создании проекта Android Studio
  • Как я могу генерировать случайное число в определенном диапазоне в Android?
  • Android Studio: невозможно запустить процесс демона
  • Как исключить определенные сообщения по имени TAG с помощью Android adb logcat?
  • Передача строки из одного действия в другую активность на Android
  • ProGuard: невозможно найти ссылочный class com.google.android.gms.R
  • Можно ли программно удалить пакет на Android?
  • Как я могу запустить действие «Добавить контакт» в android
  • Давайте будем гением компьютера.