In meiner App muss der Benutzer eine Telefonnummer in einem Feld EditText
im folgenden Format eingeben:
1 (515) 555-5555
Ich möchte nicht, dass der Benutzer beim Eingeben der Nummer "(", ")" oder "-" eingibt. Ich möchte, dass diese Zeichen automatisch hinzugefügt werden.
Angenommen, der Benutzer tippte 1
- die Klammer nach "1" sollte automatisch hinzugefügt werden, so dass "1 (" angezeigt würde. Und ich möchte beim Löschen ähnliche Funktionen haben.
Ich habe versucht, Text in der afterTextChanged
-Methode von onTextWatcher
interface zu setzen, aber es funktioniert nicht; stattdessen verursacht es einen Fehler. Jede Hilfe wird sehr geschätzt.
Sie stoßen wahrscheinlich auf ein Problem, weil afterTextChanged
wieder einspringt, d. h. Änderungen am Text bewirken, dass die Methode erneut aufgerufen wird.
Wenn das das Problem ist, besteht die Möglichkeit, ein Flag für eine Instanzvariable beizubehalten:
%Vor%Als Alternative könnten Sie einfach PhoneNumberFormattingTextWatcher verwenden - es tut dies nicht Formatierung, die Sie beschrieben haben, aber dann müssen Sie nicht viel tun, um es zu benutzen.
können Sie versuchen
%Vor%Überprüfen Sie PhoneNumnerFormattingTextWatxher
Falls Sie eine eigene Implementierung von TextWatcher möchten, können Sie folgende Appraoch verwenden:
%Vor%Tags und Links android android-edittext formatting phone-number