¿Cómo detectar caracteres especiales en un texto de edición y mostrar un Toast en respuesta (Android)?
Una disculpa por mi mal inglés, estoy usando google translate.
Estoy creando una actividad en la que los usuarios deben crear un nuevo perfil. Puse un límite para editar el texto de 15 caracteres y quiero que si el nombre del nuevo perfil tiene espacios o caracteres especiales mostrar una advertencia. Como los videojuegos en línea
- Margen de set / padding de Android para el contenido (texto) en lugar de un contenedor (EditText)
- Haga que EditText aclare todas las mayúsculas
- El cursor de Android 4.0 EditText siempre es invisible para editable = false
- Ajustar EditText a una sola línea hace que pierda su foco después de presionar enter
- La pista EditText de Android no aparece
El siguiente código me ayuda a detectar espacios, pero no caracteres especiales.
Necesito ayuda para identificar caracteres especiales y mostrar una advertencia en respuesta.
@Override public void onClick(View v) { //Convertimos el contenido en la caja de texto en un String String nombre = nombreUsuario.getText().toString(); //Si el tamaño del String es igual a 0, que es es lo mismo que dijeramos "Si esta vacio" if (nombre.length() == 0) { //Creamos el aviso Toast aviso = Toast.makeText(getApplicationContext(), "Por favor introduce un nombre de Usuario", Toast.LENGTH_LONG); aviso.show(); } else if (nombre.contains(" ") | nombre.contains("\\W")) { Toast aviso = Toast.makeText(getApplicationContext(), "No son permitidos los espacios ni los caracteres especiales", Toast.LENGTH_LONG); aviso.show(); } else { nombre = nombreUsuario.getText().toString(); //Conectamos con la base de datos //Creamos un bojeto y lo iniciamos con new Plantilla entrada = new Plantilla(CrearUsuarioActivity.this); entrada.abrir(); //creamos un metodo para escribir en la base de datos (crear entradas) entrada.crearEntrada(nombre); entrada.cerrar(); } }
- Declare EditText como TextView en Android
- Android EditText Gmail tiene gusto de campo
- Los mismos fragmentos, edittext y requestfocus emiten
- Cambiar color de sugerencia de EditText cuando se utiliza TextInputLayout
- Teclado de correo electrónico para editar texto
- EditText sin línea en la parte inferior
- ¿Cómo puedo hacer algo, 0.5 segundo después de que el texto cambió en mi EditText?
- Establecer los dígitos EditText mediante programación
Puedes usar:
string.matches("[a-zA-Z.? ]*")
Se evaluará a true si cada carácter de la cadena es una letra minúscula az, una letra mayúscula AZ, un punto, un signo de interrogación o un espacio.
me gusta:
public void Click(View v) { if (v.getId() == R.id.button1) { String nombre = textMessage.getText().toString(); if (nombre.length() == 0) { // Creamos el aviso Toast aviso = Toast.makeText(getApplicationContext(), "Por favor introduce un nombre de Usuario", Toast.LENGTH_LONG); aviso.show(); } else if (!nombre.matches("[a-zA-Z.? ]*")) { Toast aviso = Toast .makeText( getApplicationContext(), "No son permitidos los espacios ni los caracteres especiales", Toast.LENGTH_LONG); aviso.show(); } else { // Do what ever you want } } }
Para permitir az, AZ, 0-9 utilizar "[a-zA-Z0-9.? ]*"
Usted shoud ir para Android Saripaar , una API muy ligero y simple para Android. En tu caso, puedes hacer las siguientes cosas en tu instancia de EditText …
@TextRule(order = 1, minLength = 15, message = "Enter atleast 15 characters.") @Regex(order = 2, pattern = "[\\W+]", message = "Special characters are not allowed.") private TextView yourEditText;
Utilizando esta api le llevará a tener más contorls en su proceso de validación en la forma correcta. También puede utilizar [^a-zA-Z0-9]
lugar de [\\W+]
como su patrón de expresión regulador.
Espero que esto ayude..:)
Utilice la línea siguiente en edittext en el archivo xml para que sólo ingrese los alfabetos y los números;
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
Si necesita respuesta dinámica use textwatcher para su edittext;
yourEditText.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { // Here you need to check special character, if found then show error message if (s.toString().contains("%")) { // Display error message } public void beforeTextChanged(CharSequence s, int start, int count, int after) {} public void onTextChanged(CharSequence s, int start, int before, int count) {} });
Si quieres recoger los caracteres especiales y apoyar más que el conjunto muy rudo de la apuesta alfa Inglés y números:
String edit_text_name = YourEditTextName.getText().toString(); Pattern regex = Pattern.compile("[$&+,:;=\\\\?@#|/'<>.^*()%!-]"); if (regex.matcher(edit_text_name).find()) { Log.d(TAG, "SPECIAL CHARS FOUND"); //handle your action here toast message/ snackbar or something else return; }
- Entidad devuelve error en MultiPartEntityBuilder
- Excepción OutofMemoryError dalvik.system.VMRuntime.newNonMovableArray (Método nativo)