Ich möchte meine eingegebene Nummer im Format XXXXXX/XX/XI haben mit einem Algorithmus aber seine hübsche Mist, stattdessen habe ich einen Index zum Einfügen einer /
auf Position 6 und 9, Problem kommt in auf die Löschung, schlägt fehl, wenn so schnell gelöscht werden, da es eine der Schrägstriche erreicht, unten ist mein Code:Android Formatierung Text mit TextWatcher
@Override
public void afterTextChanged(Editable s) {
edt.removeTextChangedListener(this);
if(TextUtils.isEmpty(s))
return;
String string = s.toString().replace(" ", "");
if(string.length() > 10)
string = string.substring(0, 11);
StringBuilder sb = new StringBuilder(string);
if(sb.length() >= 6)
sb.replace(6, 7, "");
if(sb.length() >= 6)
sb.insert(6, "/");
if(sb.length() >= 9)
sb.replace(9, 10, "");
if(sb.length() >= 9)
sb.insert(9, "/");
edt.setText(sb.toString());
edt.setSelection(sb.length());
edt.addTextChangedListener(this);
}
jemand eine bessere Lösung hat?