android- 限制 edittext 只接受波斯语字符

标签 android

我想限制我的编辑文本只接受波斯语字符。像 ض ص ث ق́ 等字符。

我试过使用 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;
        }
    };

使用此过滤器检测波斯语/波斯语字符并限制它们用于编辑文本。使用

将此过滤器设置为您的 EditText

editText.setFilters(new InputFilter[]{filter});

这将限制波斯语/波斯语字符

关于android- 限制 edittext 只接受波斯语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44105099/

相关文章:

java - 如何将.jar库添加到android studio项目1.2.2?

android - 如何将EditText中的文本显示到ListView中?

android - 如何使 LinearLayouts 可点击

Android获取Facebook共同好友如何填写USER ID?

java - Android - 确定短信文本限制

android - 导入 androidx.fragment.app.testing.FragmentScenario 的未解决引用

android - 将 APK 上传到 Play 商店时为 "com.example is restricted"

java - Android加载一个16KB的文件需要35秒?

Android:相对布局,在底部放一个元素

android - ActionMode.Callback 的实现