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 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.
Die Antwort in einfacheren Worten wiedergeben:
Gegeben:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
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 Sie return true
aus dem onLongClick
Ereignis.
Stellen Sie sicher, dass Sie OnClickListener
Ihre onClick
Methode überschreiben . Stellen Sie außerdem sicher, dass Sie OnLongClickListener
Ihre onLongClick
Methode überschreiben . Und stellen Sie sicher, dass Ihre onLongClick
Methode zurückkehrt true
, da dies die verbraucht onClick
.
Sie können das setOnLongClickListener
Erstellen 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 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.