Je voudrais définir par programme la maxLength
propriété de TextView
car je ne veux pas la coder en dur dans la mise en page. Je ne vois aucune set
méthode liée à maxLength
.
Quelqu'un peut-il me guider comment y parvenir?
Ça devrait être quelque chose comme ça. mais jamais utilisé pour textview, seulement 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))
garder les vieux filtres avec kotlinEssaye ça
la source
Caractère de texte d'édition de limite de manière facile :
la source
Pour ceux d'entre vous qui utilisent Kotlin
Ensuite, vous pouvez simplement utiliser un simple editText.limitLength (10)
la source
Comme l'a dit João Carlos , à Kotlin, utilisez:
Voir aussi https://stackoverflow.com/a/58372842/2914140 à propos du comportement étrange de certains appareils.
(Ajoutez
android:inputType="textNoSuggestions"
à votreEditText
.)la source
LengthFilter(10)
), puis en ajouter un autre (LengthFilter(20)
).Pour Kotlin et sans réinitialiser les filtres précédents:
la source
J'ai fait une simple fonction d'extension pour celui-ci
la source
la source
meilleure solution que j'ai trouvée
la source
EditText
, mais coupera un texte après le 10e symbole (une fois).Pour conserver le filtre d'entrée d'origine, vous pouvez le faire de cette façon:
la source