style studio propiedades mascara inputtype example edittext android layout android-edittext

studio - ¿Cómo crear EditText acepta alfabetos solo en android?



gettext android studio (10)

A través de Xml puedes hacerlo fácilmente como teclear el siguiente código en xml (editText) ...

android:digits="abcdefghijklmnopqrstuvwxyz"

solo los personajes serán aceptados ...

¿Cómo puedo ingresar solo alfabetos en EditText en android?


Agregue esta línea con su etiqueta EditText.

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

Su etiqueta EditText debería verse así:

<EditText android:id="@+id/editText1" android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" android:layout_width="fill_parent" android:layout_height="wrap_content" />


Coloque el archivo edittext xml,

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"


Para aquellos que quieren que su editText solo acepte alfabetos y espacio (ni numéricos ni ningún carácter especial), entonces uno puede usar este InputFilter . Aquí he creado un método llamado getEditTextFilter() y he escrito el InputFilter dentro de él.

public static InputFilter getEditTextFilter() { return new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { boolean keepOriginal = true; StringBuilder sb = new StringBuilder(end - start); for (int i = start; i < end; i++) { char c = source.charAt(i); if (isCharAllowed(c)) // put your condition here sb.append(c); else keepOriginal = false; } if (keepOriginal) return null; else { if (source instanceof Spanned) { SpannableString sp = new SpannableString(sb); TextUtils.copySpansFrom((Spanned) source, start, sb.length(), null, sp, 0); return sp; } else { return sb; } } } private boolean isCharAllowed(char c) { Pattern ps = Pattern.compile("^[a-zA-Z ]+$"); Matcher ms = ps.matcher(String.valueOf(c)); return ms.matches(); } }; }

Adjunte este filtro de entrada a su editText después de encontrarlo, así:

mEditText.setFilters(new InputFilter[]{getEditTextFilter()});

El crédito original es para @UMAR que dio la idea de validar el uso de expresión regular y @KamilSeweryn


Para espacios, puede agregar espacio individual en los dígitos. Si necesita caracteres especiales como punto, coma también puede a esta lista

android: digits = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"


Prueba esto

<EditText android:id="@+id/EditText1" android:text="" android:inputType="text|textNoSuggestions" android:textSize="18sp" android:layout_width="80dp" android:layout_height="43dp"> </EditText>

Otro inputType se puede encontrar Here ..


Si alguien todavía quiere esto, Java regex para soportar Unicode? es bueno Es para cuando solo quieras letras (no importa qué codificación - japaneese, sueco) sea un texto de edición. Más tarde, puede verificarlo usando Matcher y Pattern.compile()


Permitir solo alfabetos en EditText android:

InputFilter letterFilter = new InputFilter() { public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String filtered = ""; for (int i = start; i < end; i++) { char character = source.charAt(i); if (!Character.isWhitespace(character)&&Character.isLetter(character)) { filtered += character; } } return filtered; } }; editText.setFilters(new InputFilter[]{letterFilter});


EditText state = (EditText) findViewById(R.id.txtState); Pattern ps = Pattern.compile("^[a-zA-Z ]+$"); Matcher ms = ps.matcher(state.getText().toString()); boolean bs = ms.matches(); if (bs == false) { if (ErrorMessage.contains("invalid")) ErrorMessage = ErrorMessage + "state,"; else ErrorMessage = ErrorMessage + "invalid state,"; }


edittext.setFilters(new InputFilter[] { new InputFilter() { public CharSequence filter(CharSequence src, int start, int end, Spanned dst, int dstart, int dend) { if(src.equals("")){ // for backspace return src; } if(src.toString().matches("[a-zA-Z ]+")){ return src; } return ""; } } });

por favor, prueba a fondo!