2015-06-11 18 views
7

Questo è il mio xmlAndroid EditText maxLength non funziona

<EditText 
android:id="@+id/et_comment" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:inputType="textNoSuggestions|textVisiblePassword" 
android:hint="Provide comments here..." 
android:gravity="top" 
android:maxLength="5" 
android:textSize="12sp" 
android:visibility="visible" 
/> 

Né sta funzionando utilizzando questo codice

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

maxLenth non funziona, non so perché, ma si mangia.
Ho controllato altre risposte nello stack ma non funzionano.
Controllare se uno degli attributi di EditText è in conflitto o qual è il problema?

EDIT: Stesso problema è stato affrontato da altri sviluppatori
vedere i commenti here stesso problema è stato affrontato da Mansi e AAT
E here nei commenti stesso problema è stato affrontato da Vincy e Riser

EDIT: Problema risolto
Stavo usando il filtro di input che sovrascrive la lunghezza massima in xml rendendolo incapace di funzionare.
La ragione per cui il filtro di input non ha funzionato per me era che stavo usando un altro filtro di input che sovrascrive il filtro di input maxLength precedente.
Inserendolo in un singolo filtro di input è stato risolto il problema.

+0

Si sta lavorando, Android: maxLength = "5" funziona! –

+0

Ma non funziona per me:/ – Salmaan

+0

Ti suggerisco di controllare su un telefono usando il debug USB –

risposta

10

Post giustamente vecchio ma, ho notato come XML sia un vero oggetto EditText mentre si aggiungono i filtri a TextView che potrebbero gestirlo in modo diverso da EditText. Se si aggiunge manualmente un oggetto InputFilter, la proprietà xml viene sovrascritta.

Il codice di esempio in cui si aggiunge InputFilter s allo View sembra essere un oggetto TextView. Assicurati di tirare la vista giusta e viene trasmessa su EditText se si aggiunge l'aggiunta manuale dei filtri: per il momento funziona anche per me.

Buona fortuna.

10

Se si utilizza InputFilter per l'edittext, maxLength non funzionerà.

7

Prova questo, funzionerà sia per maxlenght e l'ingresso del filtro

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

questa riga è utile month.setFilters (new InputFilter [] new InputFilter.LengthFilter (2)}); –

+0

in particolare se si desidera applicare più di un filtro –