2017-05-18 11 views
0

Ich muss ":" nach 2. Stelle, die zum Beispiel 10:25 ist, maximale Länge ist 5 Ziffern, es ist editiertext. Wenn ich mit der Eingabe des Edittets 10 beginne, nachdem ":" eingefügt werden soll, dann sollte 10:25 im Edittext angezeigt werden. Ich versuchte mit der oben genannten Logik nicht funktioniert. Kann mir jemand helfen. Vielen Dank im VorausNach der Eingabe von 2 Zahlen einen Doppelpunkt (:) in Android

Antwort

0

Zuerst ignorieren Sie das Ergebnis von str.replaceAll(). Die Methode gibt String zurück.

Der if Zustand kann vereinfacht werden zu s.length() == 2.

Und die Regex, die Sie verwenden, funktioniert nicht.

Dies wird Doppelpunkt in der EditText hinzufügen, nachdem Sie 2 Zeichen eingegeben haben

if (s.length() == 2) { 
    edtTxt.setText(s.toString() + ":"); 
} 
+0

es nicht funktioniert es wie 2510 und fügte hinzu: aber ich brauche 10.25 .. –

1

Nach replaceAll sollten Sie den Wert derselben Variablen zuweisen. Seine adaequat ..

public void afterTextChanged(Editable s) { 
    if(s.length() != 0 && s.length() == 3){ 
     String str = s.toString(); 
     str = str.replaceAll("..(?!$)", "$0:"); 
     edtTxt.setText(str); 
     edtTxt.setSelection(edtTxt.getText().length()); //cursor at last position 
    } 
} 
+0

obigen Logik nicht funktioniert .. –

+0

Sie soll in der Länge als 3 ändern ... es wird funktionieren. Überprüfen Sie meine aktualisierte Antwort .. wenn Sie 123 eingeben, wird es geben 12: 3 – sasikumar

+0

ok. aber der Cursor zeigt auf vor dem ersten Zeichen .. warum? –

Verwandte Themen