Beschränken Sie die Textlänge von EditText in Android
Was ist der beste Weg zur Begrenzung der Textlänge eines EditText
in Android?
Gibt es eine Möglichkeit, dies über xml?
InformationsquelleAutor der Frage hpique | 2010-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dokumentation
Beispiel
InformationsquelleAutor der Antwort Austin Hanson
verwenden eine input-filter begrenzen die maximale Länge eines text-Ansicht.
InformationsquelleAutor der Antwort jerry
InformationsquelleAutor der Antwort Emran Hamza
Einen Hinweis an Personen, die bereits über eine benutzerdefinierte input-filter und auch beschränken wollen, ist die max Länge:
Bei der Zuordnung der input-Filter im code alle zuvor eingestellten Eingabe-Filter sind deaktiviert, einschließlich einen Satz mit
android:maxLength
. Ich fand dies heraus, wenn Sie versuchen, verwenden Sie eine benutzerdefinierte input-filter, um zu verhindern, dass einige Zeichen, dass wir uns nicht erlauben, in ein Passwort-Feld. Nach der Einstellung, die filter mit setFilters die maxLength wurde nicht mehr beobachtet. Die Lösung war, maxLength und meine benutzerdefinierte filter zusammen programmgesteuert. So etwas wie dieses:InformationsquelleAutor der Antwort goto10
InformationsquelleAutor der Antwort ramo2712
Für jemand anderen zu Fragen, wie Sie zu erreichen ist, hier ist meine erweiterte
EditText
KlasseEditTextNumeric
..setMaxLength(int)
- setzt die maximale Anzahl von Ziffern.setMaxValue(int)
- maximale integer-Wert.setMin(int)
- limit minimale integer-Wert.getValue()
- get integer-WertBeispiel:
Alle anderen Methoden und Attribute, die für
EditText
natürlich auch funktionieren.InformationsquelleAutor der Antwort Martynas Januškauskas
Aufgrund goto10 Beobachtung, ich habe den folgenden code, um geschützt gegen den zu verlieren, der andere Filter mit der Einstellung der max Länge:
InformationsquelleAutor der Antwort Tim Gallagher
InformationsquelleAutor der Antwort Kishore Reddy
Andere Weise können Sie erreichen dies durch hinzufügen der folgenden definition der XML-Datei:
Dies begrenzt die maximale Länge der
EditText
widget zu 6 Zeichen.InformationsquelleAutor der Antwort user2586194
Ich habe dieses problem, und ich denke, uns fehlt eine gut erklärte Art und Weise, dies zu tun, programmgesteuert, ohne die bereits gesetzten Filter an.
Einstellung der Länge in XML:
Als die akzeptierte Antwort, Staaten korrekt, wenn Sie wollen, definieren Sie eine Feste Länge ein EditText, die Sie nicht ändern in der Zukunft weiter definieren in Ihrem EditText XML:
Einstellung der Länge programmgesteuert
Hier ist das problem, die Länge festlegen programmgesteuert Sie benötigen, um eine
InputFilter
aber sobald Sie es alle anderen Filter, die gehen Weg (z.B. maxLines, inputType, etc). Um zu vermeiden, dass frühere Filter, die Sie brauchen, um die vorherigen Filter angewendet, fügen Sie die maxLength, und setzen Sie den Filter zurück in das EditText wie folgt:InformationsquelleAutor der Antwort Ricardo
Dies ist eine benutzerdefinierte Klasse EditText, die es ermöglichen, die Länge filter zu Leben, zusammen mit anderen filtern.
Vielen Dank an Tim Gallagher ' s Antwort (unten)
InformationsquelleAutor der Antwort Gal Rom
einfache Weise in xml:
wenn u benötigen, um set 4 Zeichen in xml-Bearbeiten-text, so verwenden Sie diese
InformationsquelleAutor der Antwort Navadip Patel
Diese funktioniert einwandfrei...
android:maxLength="10"
diese nur akzeptieren
10
Zeichen.InformationsquelleAutor der Antwort Sanjay Kumaar
Xml
Java:
Kotlin:
InformationsquelleAutor der Antwort João Carlos
Hatte ich sah eine Menge von guten Lösungen, aber ich möchte geben, was ich denke, mehr als komplette und benutzerfreundliche Lösung, die Folgendes umfassen:
1, Limit Länge.
2, Wenn mehr eingeben, geben Sie eine callback auslösen toast.
3, Cursor in der Mitte oder an den Schwanz.
4, kann der Benutzer die Eingabe durch einfügen einer Zeichenfolge.
5, Immer verwerfen überlauf-Eingang und halten Herkunft.
Was ich tun konnte ist, wenn der Benutzer markieren Sie einen Teil der aktuellen Eingabe und versuchen Sie, fügen Sie eine sehr lange Zeichenfolge, ich weiß nicht, wie die Wiederherstellung der Höhepunkt.
Wie max Länge ist auf 10 Benutzer eingegeben '12345678' und markieren Sie '345' als highlight, und versuchen, fügen Sie eine Zeichenfolge von '0000' das überschreiten der Begrenzung.
Wenn ich versuche, mit edit_text.setSelection(start=2, Ende=4) zum wiederherstellen von Herkunft, status, das Ergebnis ist, legen Sie einfach 2 Leerzeichen als '12 345 678', nicht die Herkunft hervorzuheben. Ich möchte, dass jemand das lösen.
InformationsquelleAutor der Antwort hyyou2010
Können Sie die Verwendung von android:maxLength="10" in das edittext.(Hier ist die Grenze und kann bis zu 10 Zeichen)
InformationsquelleAutor der Antwort Jocelin