¿Cómo crear EditText acepta Alphabets sólo en android?
¿Cómo puedo introducir sólo alfabetos en EditText en android?
- Cómo cambiar las animaciones utilizadas por el mecanismo de animateLayoutChanges?
- Borde de elementos de la fila de tabla en android
- Cómo ocultar softkeyboad cuando se inicia la actividad en android?
- Android: ¿Dónde se debe definir / registrar un OnSharedPreferenceChangeListener?
- ScrollView ignora el layout_height del niño
- ¿Cómo puedo hacer que la edición de EditText suceda en modo de pantalla completa?
- Diseño de arquitectura Android - ¿Cómo hacerlo bien?
- Android: diseño de xml para una lista con diferentes elementos
- ¿Cuál es el mejor diseño de paquetes?
- ¿Por qué se puede hacer clic en un botón cuando hay otro diseño que lo superpone?
- Cómo hacer una pantalla completa DrawerLayout en Android?
- Consejos para optimizar un sitio web para el navegador de Android?
- El conjunto de Android View.GONE no libera espacio en listview
Agrega esta línea con tu etiqueta de EditText.
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
Su etiqueta EditText debería tener el siguiente aspecto:
<EditText android:id="@+id/editText1" android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" android:layout_width="fill_parent" android:layout_height="wrap_content" />
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 ""; } } });
Prueba por favor a fondo sin embargo!
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,"; }
A través de Xml puede hacer fácilmente como tipo siguiente código en xml (editText) …
android:digits="abcdefghijklmnopqrstuvwxyz"
Solo se aceptarán caracteres …
Para aquellos que quieren que su editText debe aceptar sólo los alfabetos y el espacio (ni números ni caracteres especiales), entonces uno puede utilizar este InputFilter
. Aquí he creado un método llamado getEditTextFilter()
y 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(); } }; }
Adjuntar este inputFilter a su editText después de encontrarlo, como esto:
mEditText.setFilters(new InputFilter[]{getEditTextFilter()});
El crédito original va a @UMAR quien dio la idea de validar usando la expresión regular y @KamilSeweryn
Ponga el código del archivo xml de edittext,
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
Para los espacios, puede agregar un solo espacio en los dígitos. Si necesita caracteres especiales como punto, coma también puede hacerlo en 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 aquí ..
Si alguien todavía quiere esto, Java regex para apoyar Unicode? Es una buena. Es para cuando usted quiere solamente letras (no importa qué codificación – japaneese, sweedish) iside un EditText. Más tarde, puede comprobarlo con Matcher
y Pattern.compile()
- Cómo compilar una biblioteca estática utilizando el Android NDK?
- El relleno no funciona en ImageButton