为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕盖茨4494581 2022-07-20 12:12:33
我正在尝试获得一个只允许字母(小写和大写)的editTextview。它适用于以下代码: edittv.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));问题是我得到一个像这样的数字键盘:要回到普通键盘,我发现了这段代码:edittv.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));edittv.setInputType(InputType.TYPE_CLASS_TEXT);它适用于恢复键盘但随后再次允许所有字符,因此它撤消了以前的代码。那么,我怎样才能以编程方式只允许使用字母键盘的字母。
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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


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 });


查看完整回答
反对 回复 2022-07-20
?
守候你守候我

TA贡献1802条经验 获得超10个赞

在这里,您正在使用仅允许数字的DigitsKeyListener扩展NumberKeyListener,这就是您收到该错误的原因。


这是我满足您要求的解决方案,在您的 XML 中使用此行。


  <EditText

        android:id="@+id/edt_username"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:hint="Username"

        android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "/>

注意: - 空格在数字末尾给出,让用户也可以输入空格


以编程方式: -


    edittv.setInputType(InputType.TYPE_CLASS_TEXT);

    edittv.setFilters(new InputFilter[]{

            new InputFilter() {

                public CharSequence filter(CharSequence src, int start,

                                           int end, Spanned dst, int dstart, int dend) {

                    if (src.equals("")) {

                        return src;

                    }

                    if (src.toString().matches("[a-zA-Z ]+")) {

                        return src;

                    }

                    return "";

                }

            }

    });


查看完整回答
反对 回复 2022-07-20
  • 2 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号