Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Hacer que un campo EditText acepte sólo letras y espacios en blanco en Android

Tengo un campo EditText en mi proyecto que representa el nombre completo de la persona. Por lo tanto, sólo quiero letras y espacios para ser permitido en it.So probé lo siguiente en el archivo XML

 android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ " 

Pero no funcionó. ¿Puede alguien decirme cómo hacerlo?

8 Solutions collect form web for “Hacer que un campo EditText acepte sólo letras y espacios en blanco en Android”

Prueba esto:

 EditText yourEditText = (EditText) findViewById(R.id.yourEditText); yourEditText.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter(CharSequence cs, int start, int end, Spanned spanned, int dStart, int dEnd) { // TODO Auto-generated method stub if(cs.equals("")){ // for backspace return cs; } if(cs.toString().matches("[a-zA-Z ]+")){ return cs; } return ""; } } }); 

Prueba esto

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Ponga espacio entre sus cadenas. Si coloca espacio al final de una cadena, automáticamente se recortará.

He utilizado el espacio después del final de las letras pequeñas y el comienzo de las letras mayúsculas

Agrega esta línea en tu etiqueta de EditText.

Android: digits = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

Su etiqueta EditText debería tener el siguiente aspecto:

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

Funciona perfectamente y no se requiere ninguna condición de validación


Actualización 1

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


Actualización 2

Lo suficientemente justo si ese es el caso, simplemente agregue espacio entre.

Android: digits = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Por alguna razón la inclusión de "\ n" no puede ocurrir al final de la cadena, busqué en la documentación de Google, la mayoría no encontré nada. La única manera de lograr espacios y salto de línea es incluir en el centro de la cadena. Vea el ejemplo que usé en una de mis aplicaciones.

 android:digits="aãâáàbcçdeéfghiíjklmnoõôóòpqrstuvwxyzAÃÂÁÀBCÇDEÉFGHIÍJKLMNOÕÔÓÒPQRSTUVWXYZ1234567890@-_'+=(){}[]*%$#!?,.;\n: /?\\" 

Use regex .. el patrón debe ser

 Full_Name_Pattern = "[AZ][az]+( [AZ][az]+)*"; 

Utilice lo siguiente en su en su layout.xml .

 <EditText android:inputType="textPersonName" /> 

Esto funcionó para mí (espacios en blanco en el centro, no al final) android: digits = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Ponga por favor el espacio entre como debajo cadena, él código de trabajo.

  android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ " 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.