Ответы:
Из слушателей событий :
onLongClick () - возвращает логическое значение, указывающее, использовали ли вы событие, и его не следует переносить дальше. То есть, верните true, чтобы указать, что вы обработали событие и на этом нужно остановиться; верните false, если вы не обработали его и / или событие должно продолжаться для любых других прослушивателей щелчка.
Вы возвращаетесь true
из своего onLongClick()
и все еще получаете обычное событие щелчка?
Отредактировано для добавления : для ListView вы можете использовать OnItemLongClickListener
. onItemLongClick()
Там используется аналогичное логическое возвращаемое значение , чтобы указать потребляется ли это событие.
Перефразируя ответ проще:
Дано:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return true
означает, что событие потреблено. Это обработано. Никакие другие события щелчка не будут уведомлены.return false
означает, что событие не используется. Уведомления о любых других событиях щелчка будут по-прежнему приходить.Так что, если вы не хотите, onClick
чтобы вас запускали после события onLongClick
, вам следует return true
из этого onLongClick
события.
Убедитесь, что вы переопределяете OnClickListener
свой onClick
метод. Также убедитесь, что вы переопределяете OnLongClickListener
свой onLongClick
метод. И убедитесь, что ваш onLongClick
метод возвращает результат true
, поскольку он будет использовать onClick
.
Вы можете реализовать setOnLongClickListener
создание экземпляра new View.OnClickListener()
или new View.OnLongClickListener()
, если вы создадите длинный щелчок и реализуете обычный OnclickListener, вы получите эти ошибки при активации метода одним щелчком. Используйте new View.OnLongClickListener()
для ловли только длинных кликов
myListView.setOnItemLongClickListener(this);
опции вам нужно будет переопределить функциюpublic boolean onItemLongClick(...)
. Здесь вам просто нужно, чтобыreturn true
указать, что LongClick был активирован и отменит триггер при обычном нажатии. Если вы вернете false, он также вызовет обычный щелчок.