Klick und Doppel-Klick auf eine Taste in android
In meiner Anwendung habe ich einen button. Nach Einzel-und Doppel-klicken auf der Schaltfläche ausführen separater Betrieb. Wie kann ich das tun? Dank
legen Sie einfach eine globle variable count und increment in click-Ereignis .wenn count=2 dann führen Doppel-klicken Sie auf Vorgang und reset count=0 ist .
InformationsquelleAutor andDev | 2013-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie möglicherweise erstellen Sie eine variable Verzögerung wird differenziert zwischen Klick und Doppelklick.
Sehen Sie diesen code
Rynold, ich habe Ihren code benutzt, wenn ich doppelt klicken, den code im Klick auch ausgeführt wird. Könnten Sie mir helfen.
Warum Sie verwenden handler-Klasse @Raynold
Ich glaube, Sie sollten ViewConfiguration.getDoubleTapTimeout() für DOUBLE_PRESS_INTERVAL, um die Konsistenz mit anderen Android-Doppel-taps.
InformationsquelleAutor Raynold
Möchten Sie vielleicht zu prüfen, nicht mit einem DoubleTap. Es ist keine normale Android Verhalten.
Als ich anfing die Programmierung auf der Android -, hielt ich laufen in die Dinge, die waren wirklich "hart" zu tun, auf dem android. Im Laufe der Zeit habe ich herausgefunden, dass viele von Ihnen waren schwer, weil Sie eine ziemlich schlechte Idee.
Wenn Sie die Portierung einer iOS-app, oder die Emulation eines iOS-app-Verhalten, möchten Sie vielleicht zu prüfen, die Umwandlung der UI über Android Verhaltensweisen und verwenden Sie einen longPress oder andere " androidy gesten.
Hier ist eine ähnliche Frage und Antwort:
Android: zu erkennen, Wie double-tap?
InformationsquelleAutor HalR
Dank zu @NikolaDespotoski.
Können Sie überprüfen, DOPPEL-TIPPEN Sie auf Beispiel aus folgenden URL.
verwendet wird in der listView. ich hoffe, es ist nützlich für Sie.
https://nodeload.github.com/NikolaDespotoski/DoubleTapListView/zip/master
InformationsquelleAutor Mr.Sandy
Wenn es zu spät ist, aber jeder herausfinden können, wenn Sie das sehen.
Erklärung:
Bevor die Schaltfläche klicken, number_of_click ist initialisiert auf 0.
thread_started ist eine Flagge zu erkennen, wenn der thread gestartet wird, bevor oder nicht.
Nun, auf den button klicken, erhöhen Sie die Nummer der Taste klicken Sie auf von inkrementellen Betreiber.
überprüfen Sie, ob der thread vorher gestartet oder nicht, wenn nicht, starten Sie dann den thread.
auf thread, bewerben Sie Ihre Logik, indem Sie mit der number_of_clicks. und der thread wird warten für den nächsten Millisekunden und dann gehen Sie durch Ihre Logik.
So, jetzt können Sie wenden Sie so viele Klicks, wie Sie wollen.
InformationsquelleAutor ssi-anik
Implementieren Sie GestureDetector und fügen Sie Ihren code in
single/double click
.TestActivity.java
Erstellen Sie nun
GestureDetector.java
Klasse.Sie müssen die gleiche Funktion aufrufen, die in Einzel - /Doppel-klicken Sie auf also was für ein problem?
eigentlich brauche ich für die Arbeit mit zwei Aktivitäten für Einzel-und Doppel-touch
siehe meine bearbeitete Antwort.
public boolean onDoubleTap(MotionEvent e) { // System.aus.println("Double tap"); flag = 2; Intent intent=new Intent(getApplicationContext(),Click2.class); startActivity(intent); return true; } @Override public boolean onSingleTapUp(MotionEvent e) { // System.aus.println("in single-tap-up"); flag=1; Intent intent=new Intent(getApplicationContext(),Click1.class); startActivity(intent); return super.onSingleTapUp(e); }
InformationsquelleAutor Harshid
Lösung dieses durch Erben von der Ansicht.OnClickListener und prüfen, klicken Sie auf Zeit zu unterscheiden, die einzigen klicken oder doppelklicken Sie, diese auch lösen das problem der zu schnelle klicken auf. Diese Lösung bringt kleinere code ändern, ersetzen Sie einfach Anzeigen.OnClickLister. Sie können auch überschreiben Sie die getGap() neu zu definieren, die Zeit zwischen zwei Klicks.
InformationsquelleAutor forqzy
Den up-Lösung kann die Arbeit für multi-click, ich Teste es aber nicht.
Also schlage ich RxBinding mit ProgressDialog.
wenn auf die Schaltfläche klicken, wird der progressDialog anzeigen-Einstellung kann es nicht Abbrechen, es zu Beheben.
InformationsquelleAutor smallfatter
Ich hab das gleiche problem auch einmal
wenn ich klickte auf die Taste,UKW-beendet;aber, wenn ich doppelt geklickt,FM ist nicht zu stoppen.Das problem war, dass Einzel-und Doppel-klicken auf der Schaltfläche ,der Wert von isFmOn() Unterschied.
Ich sloved das problem mit diesem:
Nach Einzel-und Doppel-klicken auf der Schaltfläche ausführen separater Betrieb,vielleicht ist das problem in der onClick () - Funktion , Manchmal, wenn Sie release audio-Ressource,die Sie haben zu warten, bis die Freigabe-operation durchgeführt. Vielleicht der bessere Weg, das problem zu lösen ist einfach eine globle variable count und increment in klicken Sie auf einmal.
InformationsquelleAutor chadm