Android EditText maxLength no funciona

Este es mi xml

 

Tampoco funciona usando este código

 TextView editEntryView = new TextView(...); InputFilter[] filterArray = new InputFilter[1]; filterArray[0] = new InputFilter.LengthFilter(5); editEntryView.setFilters(filterArray); 

maxLenth no está funcionando, no sé por qué, pero no lo está.
He comprobado otras respuestas en la stack, pero tampoco funcionan.
Compruebe si alguno de los atributos de EditText es conflictivo o cuál es el problema?

EDIT: el mismo problema se enfrenta a otros desarrolladores
Ver comentarios aquí mismo problema se enfrenta a Mansi y aat
Y aquí, en los comentarios, el mismo problema se enfrenta a Vincy y Riser.

EDITAR: Problema resuelto
Estaba usando un filtro de entrada que anula la longitud máxima en xml, por lo que no puede funcionar.
La razón por la que el filtro de entrada no me funcionó fue que estaba usando otro filtro de entrada que sobrescribe el filtro de entrada maxLength anterior.
Convertirlo en un único filtro de entrada solucionó ese problema para mí.

Una publicación bastante antigua, pero me di cuenta de que el XML es un objeto EditText real, mientras que usted está agregando los filtros a un TextView que podría manejarlo de manera diferente a EditText . Si está agregando un objeto InputFilter manualmente, la propiedad xml se invalida.

El código de ejemplo en el que agrega InputFilter s a la View parece ser un objeto TextView . Asegúrate de obtener la vista correcta y se está EditText en EditText si vas con la adición manual de los filtros, está funcionando para mí ahora mismo.

Buena suerte.

Si está utilizando InputFilter para el texto de edición, entonces maxLength no funcionará.

Intente esto, funcionará tanto para maxlenght como para el filtro de entrada

 month.setFilters(new InputFilter[]{new InputFilterMinMax("0", "12"), new InputFilter.LengthFilter(2)}); 

Si ya tiene InputFilter, maxLength no funcionará. Tendrá que crear un InputFilter adicional y agregarlo:

  // Filter for comma character String blockCharacterSet = ","; InputFilter filter = (source, start, end, dest, dstart, dend) -> { if (source != null && blockCharacterSet.contains(("" + source))) { return ""; } return null; }; // Filter for max Length InputFilter filter1 = new InputFilter.LengthFilter(20); // Set the filters et_list_name.setFilters(new InputFilter[] { filter, filter1 });