Von Event-Listenern :
onLongClick () - Dies gibt einen Booleschen Wert zurück, der angibt, ob Sie das Ereignis konsumiert haben und es nicht weiter ausgeführt werden sollte. Geben Sie also true zurück, um anzuzeigen, dass Sie das Ereignis behandelt haben und es hier aufhören sollte. Geben Sie false zurück, wenn Sie dies nicht behandelt haben und / oder das Ereignis für andere On-Click-Listener fortgesetzt werden soll.
Kehren Sie true
von Ihrem onLongClick()
Ereignis zurück und erhalten immer noch das normale Klickereignis?
Zum Hinzufügen bearbeitet : Für eine ListView verwenden Sie möglicherweise OnItemLongClickListener
. Der onItemLongClick()
dort verwendet einen ähnlichen boolean Rückgabewert , um anzuzeigen , ob es das Ereignis verbraucht.
myListView.setOnItemLongClickListener(this);
Option einzustellen, müssen Sie die Funktion überschreibenpublic boolean onItemLongClick(...)
. Hier müssen Sie lediglichreturn true
angeben, dass der LongClick aktiviert wurde und den Trigger beim regulären Klicken abbrechen. Wenn Sie false zurückgeben, wird auch der reguläre Klick ausgelöst.Die Antwort in einfacheren Worten wiedergeben:
Gegeben:
return true
bedeutet, dass das Ereignis verbraucht ist. Es wird gehandhabt. Es werden keine anderen Klickereignisse benachrichtigt.return false
bedeutet, dass das Ereignis nicht verbraucht wird. Alle anderen Klickereignisse erhalten weiterhin Benachrichtigungen.Wenn Sie also nicht
onClick
auch nach einem ausgelöst werden möchten ,onLongClick
sollten Siereturn true
aus demonLongClick
Ereignis.quelle
Stellen Sie sicher, dass Sie
OnClickListener
IhreonClick
Methode überschreiben . Stellen Sie außerdem sicher, dass SieOnLongClickListener
IhreonLongClick
Methode überschreiben . Und stellen Sie sicher, dass IhreonLongClick
Methode zurückkehrttrue
, da dies die verbrauchtonClick
.quelle
Sie können das
setOnLongClickListener
Erstellen einer Instanz vonnew View.OnClickListener()
oder implementieren.new View.OnLongClickListener()
Wenn Sie einen Long-Klick erstellen und einen normalen OnclickListener implementieren, werden diese Fehler angezeigt, wenn Sie die Methode mit einem Klick aktivieren. Sie solltennew View.OnLongClickListener()
nur lange Klicks abfangenquelle