So erkennen Sie, ob Benutzer mit der Eingabe von EditText android aufhören

8

Ich habe ein EditText-Feld in meinem Layout. Ich möchte eine Aktion ausführen, wenn der Benutzer die Eingabe in diesem Edittext-Feld beendet. Ich habe TextWatcher implementiert und verwende seine Funktionen

%Vor%

Die Funktionen onTextChanged und afterTextChanged werden direkt nach der Eingabe eines beliebigen Zeichens aufgerufen, aber ich möchte Aktionen ausführen, nachdem der Benutzer die Eingabe in diesem Edittext-Feld abgeschlossen hat, genau wie Facebook auf seiner "Check In" -Seite / p>

Wie kann ich das umsetzen?

    
Prithniraj Nicyone 05.02.2016, 12:37
quelle

6 Antworten

13

So habe ich für mich gearbeitet und gearbeitet!

%Vor%     
ThetNaing Mizo 22.07.2016, 10:29
quelle
6

Es gibt eine sehr einfache und einfache Möglichkeit, dies mit RxBindings für Android zu tun,

Holen Sie sich die Bibliothek, falls Sie es noch nicht getan haben,

%Vor%

Fügen Sie dieses Snippet hinzu und ändern Sie es nach Ihren Bedürfnissen,

%Vor%

Was ist der Debounce-Operator? - Erfahren Sie hier mehr darüber

>

In unserem Kontext benachrichtigt debunce Sie nur über die Textänderung in EditText , nachdem eine bestimmte Zeit seit der letzten Textänderung in EditText vergangen ist.

Hier warte ich auf 3 Sekunden , bis die letzte Textänderung zu dem Schluss gekommen ist, dass der Benutzer die Eingabe beendet hat. Sie können es nach Ihren Bedürfnissen ändern.

    
Rahul Chowdhury 29.10.2016 19:25
quelle
4

Sie könnten einen Fokuswechsel-Listener verwenden. Wenn der Editiertext den Fokus hat, dann setze voraus, dass der Benutzer die Bearbeitung fortsetzt, ansonsten haben sie aufgehört und du kannst deine Aktion ausführen:

%Vor%     
Hughzi 05.02.2016 12:46
quelle
2

Es ist ein etwas anderer Ansatz. Aber Sie können so etwas tun

Ich gehe davon aus, dass, nachdem ein Benutzer begonnen hat, den Editiertext einzugeben, und er nicht für eine bestimmte Zeit getippt hat, als angenommen werden kann, dass er mit der Eingabe aufgehört hat.

%Vor%

Was Sie im Grunde tun, ist, dass, wann immer ein Benutzer anfängt zu tippen, wenn es eine Zeitlücke von 5.000 Millisekunden gibt, wenn Sie den Text innerhalb des Editiertext ändern, Sie denken, der Benutzer hat die Eingabe beendet. Natürlich können Sie die Zeit auf das ändern, was Sie wollen

    
Ankit Aggarwal 05.02.2016 12:44
quelle
0

Ich habe einen CountDownTimer verwendet, um herauszufinden, ob der Benutzer nach einer Weile aufgehört hat zu tippen. Ich hoffe zu helfen.

%Vor%     
Gui Moreira 13.02.2016 14:45
quelle
-4

kann unter dem folgenden Code helfen

%Vor%     
mdDroid 05.02.2016 13:00
quelle

Tags und Links