Comment définir par programme maxLength dans Android TextView?
Je voudrais définir par programme la propriété maxLength
de TextView
car je ne veux pas le coder en dur dans la présentation Je ne vois aucune méthode set
liée à maxLength
.
Quelqu'un peut-il me guider comment y parvenir?
Devrait être quelque chose comme ça. mais ne l’a 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);
Essaye ça
int maxLengthofEditText = 4;
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLengthofEditText)});
Manière simple limiter le caractère d'édition :
EditText ed=(EditText)findViewById(R.id.edittxt);
ed.setFilters(new InputFilter[]{new InputFilter.LengthFilter(15)});
Pour ceux qui utilisent Kotlin
fun EditText.limitLength(maxLength: Int) {
filters = arrayOf(InputFilter.LengthFilter(maxLength))
}
Ensuite, vous pouvez simplement utiliser un simple editText.limitLength (10)
Pour Kotlin et sans réinitialiser les filtres précédents:
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))
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
//for Limit...
input.setFilters(new InputFilter[] {new InputFilter.LengthFilter(3)});
builder.setView(input);
meilleure solution que j'ai trouvée
textView.setText(text.substring(0,10));