Відповіді:
Від слухачів подій :
onLongClick () - Це повертає булевий сигнал, щоб вказати, що ви споживали подію, і не слід її переносити далі. Тобто поверніть істинне, щоб вказати, що ви попрацювали з подією, і вона повинна зупинитися тут; повернути помилкове, якщо ви його не обробляли та / або подію слід продовжувати будь-яким іншим слухачам, що натискають на клік.
Ви повертаєтеся 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 була активована і скасує тригер при звичайному натисканні. Якщо ви повернете помилкове значення, воно також спричинить звичайний клік.