Разница между событием OnClick () и OnClickListener? - PullRequest
21 голосов
/ 17 сентября 2011

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

Ответы [ 15 ]

0 голосов
/ 16 марта 2017

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

0 голосов
/ 09 января 2017

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

Пример:

 <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Click"
  android:onClick="your_method"/>
0 голосов
/ 28 ноября 2016

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

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

0 голосов
/ 22 октября 2016

Рассматривайте "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...
    }
}
0 голосов
/ 17 сентября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...