web-dev-qa-db-fra.com

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?

147
UMAR

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);
327
Sephy

Essaye ça 

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

Manière simple limiter le caractère d'édition :

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

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) 

6
Kevin

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))
1
santalu
     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);
0

meilleure solution que j'ai trouvée

textView.setText(text.substring(0,10));
0
saigopi