Edittext仅允许字母(以编程方式)

Daa*_*ens 2 java keyboard android android-edittext

我正在尝试获取仅允许字母(小写和大写)的editTextview。

可以使用以下代码:

 edittv.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));
Run Code Online (Sandbox Code Playgroud)

问题是我得到了这样的数字键盘:

键盘范例

回到普通的键盘,我找到了以下代码:

edittv.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));
edittv.setInputType(InputType.TYPE_CLASS_TEXT);
Run Code Online (Sandbox Code Playgroud)

它可以使键盘恢复原状,但随后所有字符都可以再次使用,因此撤消了先前的代码。

因此,我怎么只能以编程方式只允许使用字母键盘的字母。

bhu*_*yas 5

您可以在下面使用此代码:

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++) {
        if (!Character.isLetter(source.charAt(i))&&!Character.isSpaceChar(source.charAt(i))) {
            return "";
        }
    }
    return null;
}
};
edit.setFilters(new InputFilter[] { filter });
Run Code Online (Sandbox Code Playgroud)