En Android, les EditText peuvent contenir du texte. Dans certains cas, il faut que ces EditText ne puisse recevoir qu’un certain nombre de caractère (pour un code postal Français par exemple).

Il existe deux moyens pour le faire : en XML, ou directement en Java.

En XML

Dans le XML, on définit la propriété android:maxLength pour limiter la longueur :

<EditText
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:ems="10"
	android:maxLength="5" <!-- Pas plus de 5 caractères -->
	android:id="@+id/name"
	android:inputType="textCapWords"
	android:layout_column="1"
	android:layout_row="0" />

En Java

Malheureusement, le code java ne possède pas de .setMaxLength. On faut que l’on applique un InputFilter.

Pour faire court, un InputFilter va permettre, comme son nom l’indique, de mettre un filtre sur la saisie de l’utilisateur. Il existe deux filtres possibles : LengthFilter et AllCaps. Dans notre cas, on veut limiter la longueur (Length).

Ce qui nous donne :

EditText editText = new EditText(this);
InputFilter maxLength = new InputFilter.LengthFilter(5); // C'est ici qu'on définie la longueur max
editText.setFilters(new InputFilter[]{maxLength});

Source : Thiranjith’s Blog

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.