Android只接受a-z和A-Z之间的字符

时间:2016-08-01 10:17:46

标签: android android-edittext

我正在尝试实现简单逻辑,只能以编程方式接受a-zA-Z之间的字符

一个简单的解决方案是:

<EditText
    android:id="@+id/LanguageText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="text"
    android:digits="@string/app_lan" />

在Strings.xml中:

<string name="app_lan">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</string>

但我想以编程方式实现

username.addTextChangedListener(new TextWatcher() {
    public void afterTextChanged(Editable s) {
        if (s.toString().length() > 0) {
            /* if char is not between a-z and A-Z then return*/
            if ((int) s.toString().charAt(0) < 65 && (int) s.toString().charAt(0) > 90 || (int) s.toString().charAt(0) < 97 && (int) s.toString().charAt(0) > 122) {
                return;
            }else{
                /* Accept character */
            }
        }
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }
});

1 个答案:

答案 0 :(得分:11)

您应该使用InputFilters

{{1}}