Андроид: почему долго нажать и вызвать обычную кнопку?



У меня есть ListView со слушателями для длинного щелчка и обычного щелчка.



Почему, когда я долго нажимаю элемент списка, обычное событие щелчка тоже вызывается?



Мне нужно иметь две отдельные функции для разных кликов.

516   3  

3 ответов:

С Прослушиватели Событий:

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.

Comments

    Ничего не найдено.