Ich habe eine ListView mit Hörer für eine lange klicken und ein regelmäßiges klicken.
Warum, wenn ich lange drücken Sie auf ein Listenelement, die regelmäßige click-Ereignis aufgerufen wird, wird auch?
Muss ich haben zwei separate Funktionen, die für die verschiedenen Klicks.
InformationsquelleAutor mellowg | 2011-03-25
Vom Ereignis-Listener:
Sind Sie Rückgabe
true
von IhremonLongClick()
und noch immer das normale click-Ereignis?Bearbeitet, um hinzufügen: Für ein ListView-Steuerelement, die Sie verwenden
OnItemLongClickListener
. DieonItemLongClick()
es verwendet eine ähnliche booleschen Wert, um anzugeben, ob es konsumiert das Ereignis.myListView.setOnItemLongClickListener(this);
option, müssen Sie die Funktion Überschreibenpublic boolean onItemLongClick(...)
. Hier müssen Sie einfachreturn true
was zeigt, dass die LongClick aktiviert wurde und bricht den trigger auf das regelmäßige klicken. Wenn Sie false zurückgeben, dann werde es auslösen, das regelmäßige klicken, als gut.was die andere situation, wenn ich brauche, um zu unterscheiden zwischen der langen und klicken Sie auf normal auf, Maßnahmen zu ergreifen, nach, dass
Ich habe versucht, Ihre Lösung für ein ähnliches Problem, nicht mit Glück. Ich würde schätzen, irgendwelche Erkenntnisse oder Gedanken, die Sie bieten könnte, befindet sich hier: stackoverflow.com/questions/47783631/...
InformationsquelleAutor erichamion
Wiederholte die Antwort in einfacheren Worten:
Gegeben:
return true
bedeutet, dass das Ereignis konsumiert wird. Es behandelt wird. Keine andere click-Ereignisse benachrichtigt werden.return false
bedeutet, dass das Ereignis nicht verzehrt werden. Alle anderen click-Ereignisse weiterhin Benachrichtigungen.Also, wenn Sie nicht möchten, dass
onClick
auch ausgelöst, nachdem einonLongClick
, dann sollten Siereturn true
von deronLongClick
Veranstaltung.InformationsquelleAutor Suragch
Stellen Sie sicher, dass Sie überschreiben
OnClickListener
für IhreonClick
Methode. Auch stellen Sie sicher, dass Sie überschreibenOnLongClickListener
für IhreonLongClick
Methode. Und stellen Sie sicher, dass IhreonLongClick
Methode gibttrue
, als dieser verbraucht dasonClick
.InformationsquelleAutor Alex Lockwood