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

我正在尝试获得一个只允许字母(小写和大写)的editTextview。

它适用于以下代码:

 edittv.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));

问题是我得到一个像这样的数字键盘:

http://img1.mukewang.com/62d780c90001b7b101980280.jpg

要回到普通键盘,我发现了这段代码:


edittv.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));

edittv.setInputType(InputType.TYPE_CLASS_TEXT);

它适用于恢复键盘但随后再次允许所有字符,因此它撤消了以前的代码。


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


慕盖茨4494581
浏览 133回答 2
2回答

蝴蝶不菲

您可以在下面使用此代码:InputFilter filter = new InputFilter() {public CharSequence filter(CharSequence source, int start, int end,&nbsp; &nbsp; &nbsp; &nbsp; Spanned dest, int dstart, int dend) {&nbsp; &nbsp; for (int i = start; i < end; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if (!Character.isLetter(source.charAt(i))&&!Character.isSpaceChar(source.charAt(i))) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return "";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; return null;}};edit.setFilters(new InputFilter[] { filter });

守候你守候我

在这里,您正在使用仅允许数字的DigitsKeyListener扩展NumberKeyListener,这就是您收到该错误的原因。这是我满足您要求的解决方案,在您的 XML 中使用此行。&nbsp; <EditText&nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/edt_username"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; android:hint="Username"&nbsp; &nbsp; &nbsp; &nbsp; android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "/>注意: - 空格在数字末尾给出,让用户也可以输入空格以编程方式: -&nbsp; &nbsp; edittv.setInputType(InputType.TYPE_CLASS_TEXT);&nbsp; &nbsp; edittv.setFilters(new InputFilter[]{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new InputFilter() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public CharSequence filter(CharSequence src, int start,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int end, Spanned dst, int dstart, int dend) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (src.equals("")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return src;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (src.toString().matches("[a-zA-Z ]+")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return src;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return "";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java