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?

Était-ce utile?

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
scroll top