Comment définir par programmation maxLength dans Android TextView?
Question
Je voudrais définir par programme la propriété maxLength
de TextView
que je ne veux pas coder en dur dans la mise en page. Je ne vois aucune méthode set
liée à maxLength
.
Quelqu'un peut-il me guider comment y parvenir?
La solution
doit ê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);
Autres conseils
Essayer cette
int maxLengthofEditText = 4;
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLengthofEditText)});
Manière simple Limite modifier le caractère de texte :
EditText ed=(EditText)findViewById(R.id.edittxt);
ed.setFilters(new InputFilter[]{new InputFilter.LengthFilter(15)});
Pour ceux utilisant 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);
solution que je trouve mieux
textView.setText(text.substring(0,10));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow