如何在android上获取字符串的语言环境?

时间:2017-08-14 17:54:11

标签: java android

我想知道edittext中输入文本的区域设置是什么! 但是,我试图获得键盘区域设置,但这并没有帮助。 我不想在编辑文本中输入英文,所以请帮助我! 我希望用户知道他/她不能输入英文!

抱歉我的英文不好!

这是我的代码:

  edtUsernameLogin.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }

        @Override
        public void afterTextChanged(Editable editable) {
            if (editable.toString().isEmpty()) {
                mtfUsernameLogin.setLabelColor(G.resources.getColor(R.color.cpb_white), "نام کاربری");
            } else {
                String locale = G.inputMethodManager.getCurrentInputMethodSubtype().getLocale();
                if (locale.equals("fa") || locale.equals("ar")) {
                    mtfUsernameLogin.setLabelColor(G.resources.getColor(R.color.sPink), "نام کاربری باید انگلیسی باشد !");
                } else {
                    mtfUsernameLogin.setLabelColor(G.resources.getColor(R.color.sGreen), "نام کاربری");
                }
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

解决方案是:

InputFilter usernameFilter = new InputFilter() {
        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            String blockCharacterSet = " اآبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی";
            if (blockCharacterSet.contains(source)) {
                edtNameEdit.setHintTextColor(getResources().getColor(R.color.grey));
                edtNameEdit.setHint("نام و نام خانوادگی");
                return source.toString();
            } else {
                edtNameEdit.setHintTextColor(getResources().getColor(R.color.sPink));
                edtNameEdit.setHint("نام و نام خانوادگی باید فارسی باشد!");
                return "";
            }
        }
    };
    edtNameEdit.setFilters(new InputFilter[]{usernameFilter});

重要的一句话:

    edtNameEdit.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);