Chciałbym programowo ustawić maxLength
właściwość, TextView
ponieważ nie chcę na stałe kodować jej w układzie. Nie widzę żadnej set
metody związanej z maxLength
.
Czy ktoś może mi pomóc, jak to osiągnąć?
Powinno być coś takiego. ale nigdy nie używał go do widoku tekstu, tylko edittext:
TextView tv = new TextView(this);
int maxLength = 10;
InputFilter[] fArray = new InputFilter[1];
fArray[0] = new InputFilter.LengthFilter(maxLength);
tv.setFilters(fArray);
editText.filters = arrayOf(*editText.filters, InputFilter.LengthFilter(10))
zachowaj stare filtry z kotlinemSpróbuj tego
źródło
Łatwy sposób edycji limitu znaków tekstu :
źródło
Dla tych z Was, którzy używają Kotlin
Następnie możesz po prostu użyć prostego editText.limitLength (10)
źródło
Jak powiedział João Carlos , w Kotlin użyj:
Zobacz też https://stackoverflow.com/a/58372842/2914140 o dziwnym zachowaniu niektórych urządzeń.
(Dodaj
android:inputType="textNoSuggestions"
do swojegoEditText
.)źródło
LengthFilter(10)
), a następnie dodać kolejny (LengthFilter(20)
).Dla Kotlina i bez resetowania poprzednich filtrów:
źródło
Zrobiłem prostą funkcję rozszerzenia dla tego
źródło
źródło
najlepsze rozwiązanie, jakie znalazłem
źródło
EditText
, ale odcina tekst po dziesiątym symbolu (jednorazowo).Aby zachować oryginalny filtr wejściowy, możesz to zrobić w ten sposób:
źródło