Android: почему длительный щелчок также вызывает нормальный щелчок?
40346 просмотра
3 ответа
У меня есть ListView со слушателями для длинного клика и обычного клика.
Почему, когда я долго нажимаю на элемент списка, вызывается обычное событие щелчка?
Мне нужно иметь две отдельные функции для разных кликов.
Автор: mellowg Источник Размещён: 12.11.2019 09:59Ответы (3)
270 плюса
От слушателей событий :
onLongClick () - возвращает логическое значение, указывающее, что вы использовали событие, и оно не должно переноситься дальше. То есть, верните true, чтобы указать, что вы обработали событие, и оно должно остановиться здесь; вернуть false, если вы не обработали его и / или событие должно продолжаться любым другим прослушивателям при нажатии.
Вы возвращаетесь true
со своего onLongClick()
и все еще получаете нормальное событие щелчка?
Отредактировано, чтобы добавить : Для ListView, вы можете использовать OnItemLongClickListener
. onItemLongClick()
Там используется аналогичное логическое возвращаемое значение , чтобы указать потребляется ли это событие.
43 плюса
Переформулируем ответ в более простых терминах:
Дано:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return true
означает, что событие потребляется. Это обрабатывается. Никакие другие события щелчка не будут уведомлены.return false
означает, что событие не используется. Любые другие события клика будут продолжать получать уведомления.
Так что, если вы не хотите, onClick
чтобы вас тоже вызвали после onLongClick
, то вам следует принять участие return true
в onLongClick
мероприятии.
19 плюса
Убедитесь, что вы переопределяете OnClickListener
свой onClick
метод. Также убедитесь, что вы переопределяете OnLongClickListener
свой onLongClick
метод. И убедитесь, что ваш onLongClick
метод возвращает true
, так как он будет использовать onClick
.
Вопросы из категории :
- android Насколько хорошо отражает эмулятор Android Phone?
- android Как сохранить состояние активности Android с помощью сохранения состояния экземпляра?
- android Android: доступ к дочерним представлениям из ListView
- android Как вызвать SOAP веб-сервис на Android
- android Как вы форматируете дату и время в Android?
- events Каковы различия между делегатами и событиями?
- events Вызывать события C # извне класса-владельца?
- events Как мне обработать событие закрытия окна в Tkinter?
- events Зачем использовать EventArgs.Empty вместо null?
- events Event binding on dynamically created elements?
- listview Как я могу получить доступ к ListViewItems WPF ListView?
- listview Прокрутите список в WPF в определенную строку
- listview c # мерцание Listview при обновлении
- listview Добавление кнопки в ListView в WinForms
- listview Связывание ListView с свойством «IsSelected» ListViewItem
- onlongclicklistener Android: почему длительный щелчок также вызывает нормальный щелчок?
- onlongclicklistener как реализовать прослушиватель длинных кликов в списке
- onlongclicklistener Длительное нажатие на предмет
- onlongclicklistener ExpandableListView не расширяется при реализации OnLongClickListener
- onlongclicklistener Сделайте что-нибудь, удерживая кнопку нажатой