es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Android no permite múltiples líneas en `EditText` al filtrar emojis.

No permito caracteres especiales y emojis usando esta función de extensión. Básicamente, no permitirá emojis, símbolos y caracteres especiales que no sean los que pasamos en “allowedChars”.

Así es como hice el “EditText”

Donde “supported_digits” son:

Esto funciona bien pero no permite varias líneas.
¿Alguna idea de cómo podemos permitir múltiples líneas junto con la filtración de emojis?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para admitir líneas múltiples junto con la filtración de emojis, puede modificar la función filterEmojisAndDigits para incluir la clase InputFilter.LengthFilter y establecer el límite máximo de longitud en un número muy grande (por ejemplo, Int.MAX_VALUE). Esto permitiría al usuario ingresar múltiples líneas de texto sin estar restringido por el límite máximo de longitud especificado en el EditText. Aquí está el código modificado:

    fun EditText.filterEmojisAndDigits(allowedChars: String) {
        val maxLength = Int.MAX_VALUE
        filters = arrayOf(InputFilter.LengthFilter(maxLength), InputFilter { source, _, _, _, _, _ ->
            source.filter {
                Character.getType(it) != Character.SURROGATE.toInt() &&
                        Character.getType(it) != Character.OTHER_SYMBOL.toInt() &&
                        allowedChars.contains(it, false)
            }
        })
    }
    

    Con esta modificación, el EditText debería permitir al usuario ingresar múltiples líneas de texto mientras sigue filtrando emojis y caracteres no permitidos.

Comments are closed.