Als Gabe Sechan traurig:
Dies kann über einen Timer erfolgen (erhalte die Zeit, in der er darauf klickt, speichere ihn und wenn er innerhalb von etwa 100 ms erneut klickt, ignoriere den zweiten Klick)
Hier ist eine Implementierung, die ich in meinem Projekt verwendet habe:
%Vor% Verwenden Sie einfach OnOneClickListener
anstelle von OnClickListener
und führen Sie Ihren Code in onOneClick()
method aus.
Die Lösung mit deaktivierender Schaltfläche in onClick()
funktioniert nicht. Zwei Klicks auf eine Schaltfläche können für die Ausführung eingeplant werden, noch bevor das erste onClick()
ausgeführt wird, und die Schaltfläche deaktivieren.
Dies wird als Entprellen bezeichnet - es ist ein klassisches Problem in Hardware und Software. Es gibt ein paar Tricks, die Sie tun können, aber alle reduzieren sich darauf, die Schaltfläche vorübergehend zu deaktivieren und später wieder zu aktivieren. Dies kann über einen Zeitgeber erfolgen (erhalte die Zeit, in der er darauf klickt, speichere ihn und wenn er innerhalb von beispielsweise 100 ms erneut klickt, ignoriere den zweiten Klick). Eine andere Möglichkeit wäre, die Schaltfläche nach onClick zu deaktivieren und sie wieder zu aktivieren, wenn die neue Aktivität mit onActivityResult beendet wird. Oder es gibt ein Dutzend andere Möglichkeiten, wählen Sie das Einfachste für Sie.
Wenn ich Selektor ziehbar in Buttons verwende und stelle
ein %Vor%es führt das Ereignis onClick () bei Doppelklick aus. Ich fand es zufällig, an Android Emulator API Level 10, Android 2.3.3 zu arbeiten Wurde nicht auf einem echten Gerät getestet. Hier ist der vollständige Code.
%Vor%und Java-Code
%Vor%Tags und Links android android-activity button double-click