EditText, utilisé comme zone de saisie dans les applications Android Je veux limiter l'entrée aux seuls alphabets supérieurs! Pour iOS, reportez-vous à [iOS] Alphabet limite supérieure et limite de longueur dans UITextField.
Hôte: Windows 10 Android Studio: 3.3.2 Java
Ouvrez la mise en page, sélectionnez le UITextField souhaité et ouvrez les attributs: chiffres dans le volet droit pour les modifier.
android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Préparation du filtre
MyActivity.java
//Filtre alphabet
private InputFilter alphabetFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
if (source.toString().matches("^[a-zA-Z]+$")) {
return source.toString().toUpperCase(Locale.ROOT);
} else {
return "";
}
}
};
MyActivity.java
InputFilter myFilters[] = {alphabetFilter, new InputFilter.LengthFilter(5)}; //Majuscule + filtre alphabet + filtre de longueur
EditText targetEditText = findViewById(R.id.edittext_target);
targetEditText.setFilters(myFilters);
Vous ne pouvez pas saisir de chiffres avec le clavier, la longueur est limitée, Assurez-vous que si vous entrez des lettres minuscules, elles seront automatiquement converties en majuscules.
Je vous remercie pour votre travail acharné!
Recommended Posts