Antworten:
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 truevon 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.
Die Antwort in einfacheren Worten wiedergeben:
Gegeben:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return truebedeutet, dass das Ereignis verbraucht ist. Es wird gehandhabt. Es werden keine anderen Klickereignisse benachrichtigt.return falsebedeutet, dass das Ereignis nicht verbraucht wird. Alle anderen Klickereignisse erhalten weiterhin Benachrichtigungen.Wenn Sie also nicht onClickauch nach einem ausgelöst werden möchten , onLongClicksollten Sie return trueaus dem onLongClickEreignis.
Stellen Sie sicher, dass Sie OnClickListenerIhre onClickMethode überschreiben . Stellen Sie außerdem sicher, dass Sie OnLongClickListenerIhre onLongClickMethode überschreiben . Und stellen Sie sicher, dass Ihre onLongClickMethode zurückkehrt true, da dies die verbraucht onClick.
Sie können das setOnLongClickListenerErstellen einer Instanz von new 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 sollten new View.OnLongClickListener()nur lange Klicks abfangen
myListView.setOnItemLongClickListener(this);Option einzustellen, müssen Sie die Funktion überschreibenpublic boolean onItemLongClick(...). Hier müssen Sie lediglichreturn trueangeben, 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.