我有一个 EditText,我想在其中只允许任何语言的字母和数字。我尝试了不同android:inputType
的android:digits
XML 格式。
我尝试使用 set TextWatcher 来编辑文本,其中 onTextChanged() 就像
@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;
}
}
}
这工作正常。但是每当我尝试清除文本时,光标都会移动到每个字母的开头。意味着当我清除一个字母时,光标移动开始。
如果我使用 like android:digits="abcdefghijklmnopqrstuvwxyz1234567890 "
,它只允许我输入英文字母和数字。它不允许我输入任何其他语言文本,因为我在这里只给出了与英语相关的字母。但我的要求是允许复制/粘贴其他语言的字母和字母。我希望我们可以通过使用 Patterns、TextWatcher 和 InputFilter 来做到这一点。但是我没有找到更好的方法。
请让我知道是否有任何方法可以做到这一点。