В большинстве случаев, да, View.OnClickListener#onClick()
- это стандартная идиома "сделай что-нибудь, когда нажмете эту вещь".Я говорю больше всего, потому что фактическая базовая реализация немного сложнее, и есть разные способы, которыми событие касания перемещается вверх по иерархии представления, прежде чем его обнаруживают как событие «щелчка» и распространяют обратно вниз по иерархии каксобытие щелчка - но если вы не реализуете настраиваемые представления и не хотите настраивать отслеживание на основе касания, вам обычно не нужно беспокоиться об этих событиях.
Например, если вы установите View.OnTouchListener на виде, вы получаете каждое событие касания (вниз, движение, вверх и на поддерживаемых устройствах, даже несколько указателей).В обработчике onTouchEvent (), если вы return true
, он сообщает представлению «Меня заинтересовало это событие движения, и я использовал это событие; поэтому притворяйтесь, что событие никогда не происходило, и прекратите его распространение / обработку» -делая это, вы фактически мешаете стандартному обнаружению событий клика OnClickListener
.
Но в большинстве случаев, если вы хотите, чтобы что-то произошло, потому что вы нажали кнопку (удивление, удивление :), View.OnClickListener
и View#setOnClickListener()
- это то, что вы хотите.