2015-06-11 18 views
7

Das ist mein xmlandroid EditText maxLength nicht funktioniert

<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" 
/> 

Weder ist es mit diesem Code arbeiten

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

maxLenth nicht funktioniert, ich weiß nicht, warum, aber es ist nicht.
Ich habe andere Antworten auf dem Stapel überprüft, aber sie funktionieren auch nicht.
Bitte überprüfen Sie, ob eines der EditText-Attribute in Konflikt steht oder was ist das Problem?

EDIT: Das gleiche Problem wird durch andere Entwickler
Siehe here Kommentare gleichen Problem von Mansi und aat
Und here in den Kommentaren gleiche Problem wird, vor denen Vincy und Riser

konfrontiert

wird BEARBEITEN: Problem gelöst
Ich verwendete Eingabefilter, der die maximale Länge in XML überschreibt, so dass es nicht funktionieren kann.
Der Grund Eingabefilter funktionierte nicht für mich war, dass ich einen anderen Eingabefilter verwendete, der den vorherigen MaxLength Eingabefilter überschreibt.
Es in einen einzelnen Eingabefilter zu machen behob dieses Problem für mich.

+0

Es funktioniert, android: maxLength = "5" funktioniert! –

+0

Aber es funktioniert nicht für mich:/ – Salmaan

+0

Ich schlage vor, Sie auf einem Telefon mit USB-Debugging zu überprüfen –

Antwort

10

Ziemlich alte Post aber, bemerkte ich, wie das XML ist ein tatsächliches EditText Objekt, während Sie die Filter zu einem TextView hinzufügen, die anders als EditText behandelt werden könnte. Wenn Sie ein Objekt InputFilter manuell hinzufügen, wird die Eigenschaft xml überschrieben.

Der Beispielcode, mit dem Sie InputFilter s zu View hinzufügen, scheint ein TextView Objekt zu sein. Stellen Sie sicher, dass Sie die richtige Ansicht ziehen, und es wird in EditText umgewandelt, wenn Sie mit dem manuellen Hinzufügen der Filter gehen - es funktioniert für mich jetzt.

Viel Glück.

10

Wenn Sie InputFilter für den Editiertext verwenden, funktioniert maxLength nicht.

7

dies versuchen, wird es funktionieren sowohl für maxlenght und Eingangsfilter

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

diese Zeile ist hilfreich monate.setFilters (new InputFilter [] new InputFilter.LengthFilter (2)}); –

+0

speziell incase, wenn Sie mehr als einen Filter anwenden möchten –