我想限制我的编辑文本只接受波斯语字符。像 ض ص ث ق́ 等字符。
我试过使用 xml digit 但它不起作用。
我该怎么做?
最佳答案
您可以为 EditText 使用 InputFilter。 InputFilters可以附加到 Editables 以限制可以对其进行的更改。
InputFilter filter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
String text = String.valueOf(source.charAt(i));
Pattern RTL_CHARACTERS = Pattern.compile("[\u0600-
\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF]");
Matcher matcher = RTL_CHARACTERS.matcher(text);
if (matcher.find()) {
return ""; // it's Persian
}
}
return null;
}
};
使用此过滤器检测波斯语/波斯语字符并限制它们用于编辑文本。使用
将此过滤器设置为您的 EditTexteditText.setFilters(new InputFilter[]{filter});
这将限制波斯语/波斯语字符
关于android- 限制 edittext 只接受波斯语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44105099/