Ich habe einen EditText, in dem ich nur Alphabete und Zahlen jeder Sprache erlauben will. Ich habe mit verschiedenen android:inputType
und android:digits
in XML versucht.EditText erlaubt nur Alphabete, Ziffern aller Sprachen
ich mit Satz TextWatcher versucht, in dem EditText OnTextChanged() ist wie
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
switch (et.getId()) {
case R.id.edtMultiLang: {
et.removeTextChangedListener(watcher2);
et.setText(s.toString().replaceAll("[^[:alpha:]0-9 ]", ""));
// et.setText(s.toString().replaceAll("[^A-Za-z0-9 ]", ""));
et.addTextChangedListener(watcher2);
break;
}
}
}
Dieses feine arbeitet. Aber immer, wenn ich versuchte, den Text zu löschen, bewegt sich der Cursor für jeden Buchstaben. Bedeutet, wenn ich einen einzelnen Buchstaben lösche, bewegt sich der Cursor zum Start.
Wenn ich wie android:digits="abcdefghijklmnopqrstuvwxyz1234567890 "
verwende, erlaubt es mir, nur Alphabete und Zahlen von Englisch zu tippen. Es erlaubt mir nicht, irgendeinen anderen Sprachtyp einzugeben, da ich hier nur Englisch verwandte Alphabete gegeben habe. Aber meine Anforderung besteht darin, das Kopieren/Einfügen von Alphabeten und Buchstaben anderer Sprachen zuzulassen. Ich hoffe, wir können dies tun, indem wir Patterns, TextWatcher und InputFilter verwenden. Aber ich habe keinen besseren Weg gefunden.
Bitte lassen Sie mich wissen, wenn es eine Möglichkeit gibt, dies zu tun.
Ich fand Lösung bei http://stackoverflow.com/questions/41953259/edittext-cursor-coming-to-start-für-jeden-buchstaben-wenn-clear-text, aber wenn ich Text einfügen, bewegt sich der Cursor zum Ende – Srikanth