Ich versuche, mein EditText-Feld in meiner App einige Einschränkungen zu setzen. Für den vollständigen Namen und einige andere Felder möchte ich nur Buchstaben, Leerzeichen und einige andere Zeichen wie '.' oder '-'.Validieren von EditText View auf TextChanged
sah ich ein paar Sachen online und dies zusammen:
mFullnameView = (EditText) findViewById(R.id.activity_register_et_fullname);
TextWatcher fullnameTextWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
validate(s.toString());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//
}
private void validate(String s) {
if (!(Pattern.matches("^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", s))) {
if (s.length() > 0) {
final String cleanText = s.substring(0, s.length());
mFullnameView.setText(cleanText);
}
}
}
};
aber jetzt meine Anwendung friert für ein paar Sekunden und dann stürzt ab, wenn ich einen Versuch Eingabe von „“ Im EditText-Feld weiß ich nicht, warum dies geschieht oder wie es gelöst wird.
Es könnte einfacher sein, einfach einzuschränken, was der Benutzer am EditText eingeben kann, damit Sie nicht versuchen müssen, zu validieren. Wie hier: http://stackoverflow.com/a/23212485/2128028 – Everett