Wie lege ich maxLength in Android TextView programmgesteuert fest?

Lesezeit: 2 Minuten

Wie lege ich maxLength in Android TextView programmgesteuert fest
UMAR-MOBITSOLUTIONS

Ich möchte programmatisch festlegen maxLength Eigentum von TextView da ich es nicht hart im Layout codieren möchte. ich kann keine sehen set Methode im Zusammenhang mit maxLength.

Kann mir jemand helfen, wie man dies erreicht?

1641936332 969 Wie lege ich maxLength in Android TextView programmgesteuert fest
Sephy

Sollte so ähnlich sein. aber nie für die Textansicht verwendet, nur edittext :

TextView tv = new TextView(this);
int maxLength = 10;
InputFilter[] fArray = new InputFilter[1];
fArray[0] = new InputFilter.LengthFilter(maxLength);
tv.setFilters(fArray);

  • Darauf aufbauend könnte es viel sauberer sein, zu gehen: tv.setFilters( new InputFilter[] { neuer InputFilter.LengthFilter(10)});

    – Mark D

    15. Mai ’12 um 20:38 Uhr

  • Könnte nicht einfach “maxLength()” sagen.. nein, nein, nein.. das wäre zu einfach. sie mussten es abstrakt machen.. yay!

    – wütendITguy

    15. Juli ’16 um 6:11

  • Aber das setzt deine vorherigen Filter zurück, nicht wahr?

    – crgarridos

    11. Okt ’17 um 9:46

  • Mit Kotlin können Sie es sauberer machen: editText.filters = arrayOf(InputFilter.LengthFilter(10))

    – Elvis Chidera

    9. Dezember ’17 um 6:54

  • editText.filters = arrayOf(*editText.filters, InputFilter.LengthFilter(10)) alte filter mit kotlin behalten

    – Peter Samokhin

    26. Juli ’19 bei 0:24

Wie lege ich maxLength in Android TextView programmgesteuert fest
IntelliJ Amiya

Versuche dies

int maxLengthofEditText = 4;    
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLengthofEditText)});

  • Das funktioniert bei mir, aber in Android 5.1 kann man weiterhin Buchstaben eingeben, die im Eingabefeld nur “unsichtbar” sind. Aber sie werden im Textvorschlag gezeigt. Und wenn Sie versuchen, Buchstaben am Ende zu löschen.

    – Radon8472

    3. Dezember ’15 um 15:14

  • Dies ist kein “anderer Weg”, dies ist die Kurzversion der ersten Antwort auf die gleiche Weise.

    – Ninja-Codierung

    11. Januar ’16 um 17:22

1641936332 695 Wie lege ich maxLength in Android TextView programmgesteuert fest
Farid Ahmed

Einfacher Weg Textzeichen bearbeiten begrenzen :

EditText ed=(EditText)findViewById(R.id.edittxt);
ed.setFilters(new InputFilter[]{new InputFilter.LengthFilter(15)});

1641936332 587 Wie lege ich maxLength in Android TextView programmgesteuert fest
CoolMind

Wie João Carlos sagte, in Kotlin verwenden:

editText.filters += InputFilter.LengthFilter(10)

Siehe auch https://stackoverflow.com/a/58372842/2914140 über das seltsame Verhalten einiger Geräte.

(Hinzufügen android:inputType="textNoSuggestions" zu deinem EditText.)

  • Warum nicht setMaxLength als Funktionsnamen verwenden? Sie könnten dies auch auf die Textansicht anwenden … danke +1 🙂

    – crgarridos

    11. Okt ’17 um 9:42

  • Ich habe andere Methoden, die diesem Muster folgen: limitDecimalPlaces, limitNumberOnly, limitAscii für limitLength.

    – Kevin

    13. Okt ’17 um 18:37

  • filter = filter.plus(InputFilter.LengthFilter(max)) Vorhandene nicht überschreiben

    – ersin-ertan

    30. Okt. 18 um 4:20

1641936332 520 Wie lege ich maxLength in Android TextView programmgesteuert fest
Fatih Santalu

Für Kotlin und ohne Zurücksetzen vorheriger Filter:

fun TextView.addFilter(filter: InputFilter) {
  filters = if (filters.isNullOrEmpty()) {
    arrayOf(filter)
  } else {
    filters.toMutableList()
      .apply {
        removeAll { it.javaClass == filter.javaClass }
        add(filter)
      }
      .toTypedArray()
  }
}

textView.addFilter(InputFilter.LengthFilter(10))

Wie lege ich maxLength in Android TextView programmgesteuert fest
Kyriakos Georgiopoulos

Ich habe eine einfache Erweiterungsfunktion für diese gemacht

/**
 * maxLength extension function makes a filter that 
 * will constrain edits not to make the length of the text
 * greater than the specified length.
 * 
 * @param max
 */
fun EditText.maxLength(max: Int){
    this.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(max))
}

editText?.maxLength(10)

1641936332 826 Wie lege ich maxLength in Android TextView programmgesteuert fest
Serhii Stakhiv

Meine Lösung für SWIFT 5

editText.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(123))

.

389920cookie-checkWie lege ich maxLength in Android TextView programmgesteuert fest?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy