Des auditeurs d'événements :
onLongClick () - Cela retourne un booléen pour indiquer si vous avez consommé l'événement et qu'il ne doit pas être porté plus loin. Autrement dit, retournez true pour indiquer que vous avez géré l'événement et qu'il doit s'arrêter ici; retourne false si vous ne l'avez pas géré et / ou que l'événement doit se poursuivre vers tous les autres écouteurs au clic.
Êtes-vous de retour true
de votre onLongClick()
événement et recevez-vous toujours l'événement de clic normal?
Modifié pour ajouter : Pour un ListView, vous utilisez peut-être OnItemLongClickListener
. L' onItemLongClick()
il utilise une valeur de retour booléen similaire pour indiquer si elle a consommé l'événement.
myListView.setOnItemLongClickListener(this);
option, vous devrez remplacer la fonctionpublic boolean onItemLongClick(...)
. Ici, vous avez simplement besoin dereturn true
ce qui indique que le LongClick a été activé et annulera le déclencheur sur le clic normal. Si vous retournez false, cela déclenchera également le clic normal.Répétant la réponse en termes plus simples:
Donné:
return true
signifie que l'événement est consommé. C'est manipulé. Aucun autre événement de clic ne sera notifié.return false
signifie que l'événement n'est pas consommé. Tous les autres événements de clic continueront de recevoir des notifications.Donc, si vous ne voulez
onClick
pas être également déclenché après unonLongClick
, vous devriez le faire àreturn true
partir de l'onLongClick
événement.la source
Assurez-vous que vous remplacez
OnClickListener
votreonClick
méthode. Assurez-vous également que vous remplacezOnLongClickListener
votreonLongClick
méthode. Et assurez-vous que votreonLongClick
méthode retournetrue
, car cela consommera le fichieronClick
.la source
Vous pouvez implémenter la
setOnLongClickListener
création d'une instance denew View.OnClickListener()
ounew View.OnLongClickListener()
, si vous créez un clic long et implémentez un OnclickListener normal, vous obtiendrez ces erreurs de simple clic activant la méthode. Vous devez utilisernew View.OnLongClickListener()
pour capturer uniquement les longs clicsla source