Dans mon application Android, j'ai différents EditText
endroits où l'utilisateur peut entrer des informations. Mais je dois forcer l'utilisateur à écrire en majuscules. Connaissez-vous une fonction pour faire cela?
android
android-edittext
uppercase
Natacha
la source
la source
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
bien.maxLength
), Essayer d'ajouter laInputFilter.AllCaps()
àeditText.getFilters
tableau. Voir stackoverflow.com/a/18934659/3890983editText.filters = editText.filters + InputFilter.AllCaps()
editText.filters += InputFilter.AllCaps()
Kotlin est merveilleux! <3Si vous voulez
forcer l'utilisateur à écrire enmajuscules par défaut dans votre EditText, il vous suffit d'ajouterandroid:inputType="textCapCharacters"
. (L'utilisateur peut toujours passer manuellement en minuscules.)la source
Réglez le
input type
surTYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS
. Lekeyboard
devrait honorer cela.la source
Vous pouvez utiliser deux méthodes.
Première manière:
Réglez
android:inputType="textCapSentences"
votre EditText.Deuxième manière:
Lorsque l'utilisateur entre le numéro, vous devez utiliser l'observateur de texte et changer la petite en majuscule.
la source
Vous pouvez ajouter la
android:textAllCaps="true"
propriété à votre fichier xml dans EditText. Cela forcera le clavier d'entrée logicielle à apparaître en mode tout en majuscules. La valeur que vous entrez apparaîtra en majuscules. Cependant, cela ne garantit pas que l'utilisateur ne peut entrer qu'enUpperCase
lettres. S'ils le souhaitent, ils peuvent toujours revenir aux lettres minuscules. Si vous voulez vous assurer que la sortie de laEdittext
est en majuscules, vous devez alors convertir manuellement la chaîne d'entrée en utilisant latoUpperCase()
méthode de laString
classe.la source
android:textAllCaps="true"
est uniquement une propriété de TextView ( stackoverflow.com/a/28803492/5268730 ). Utilisezandroid:inputType="textCapCharacters"
plutôt.Vous devriez mettre
android:inputType="textCapCharacters"
avec Edittext dans un fichier xml.la source
Plutôt que de vous soucier du clavier, pourquoi ne pas accepter n'importe quelle entrée, minuscule ou majuscule et convertir la chaîne en majuscules?
Le code suivant devrait vous aider:
Ceci est convivial car il est inutile pour l'utilisateur de savoir que vous avez besoin de la chaîne en majuscules. J'espère que cela t'aides.
la source
Encore mieux ... une doublure à Kotlin ...
Terminé!
la source
<your_edit_text>.filters = <your_edit_text>.filters + InputFilter.AllCaps()
<your_edit_text>.filters += InputFilter.AllCaps()
Dans kotlin , dans le fichier .kt, apportez des modifications:
Utilisez la propriété synthétique pour un accès direct au widget avec identifiant. Et en XML, pour votre texte d'édition, ajoutez quelques indicateurs supplémentaires comme:
Cela mettra à jour le clavier en majuscules.
la source
Utiliser le filtre d'entrée
la source
la source
Faites juste ceci:
la source
Essayez d'utiliser l'un des codes ci-dessous pour résoudre votre problème.
par programme:
XML:
la source
Pour moi, cela a fonctionné en ajoutant android: textAllCaps = "true" et android: inputType = "textCapCharacters"
la source
Pour obtenir tout le capital, utilisez ce qui suit dans votre XML:
la source
essayez ce code il fera votre entrée en majuscules
la source
Sur la base de la réponse acceptée, cette réponse fait la même chose, mais à Kotlin. Juste pour faciliter le copypast: ·)
la source
filters += InputFilter.AllCaps()
: DPour obtenir un clavier en majuscules lorsque vous cliquez sur edittext, utilisez ce code dans votre xml,
la source
J'utilise Visual Studio 2015 / Xamarin pour créer mon application pour Android 5.1 et Android 6.0 (même apk installé sur les deux).
Lorsque j'ai spécifié
android:inputType="textCapCharacters"
dans mon axml, le clavier AllCaps est apparu comme prévu sur Android 6.0, mais pas sur Android 5.1. J'ai ajoutéandroid:textAllCaps="true"
à mon axml et toujours pas de clavier AllCaps sur Android 5.1. J'ai défini un filtre en utilisantEditText.SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
et alors que le clavier virtuel affiche des caractères minuscules sur Android 5.1, le champ de saisie est maintenant AllCaps.EDIT: Les différences de comportement que j'ai observées et supposées être liées au système d'exploitation étaient en fait parce que j'avais différentes versions de Google Keyboard sur les appareils de test. Une fois que j'ai mis à jour les appareils avec le dernier clavier Google (publié en juillet 2016 au moment de la rédaction de cet article), le comportement `` All Caps '' était cohérent entre les systèmes d'exploitation. Désormais, tous les appareils affichent des caractères minuscules sur le clavier, mais l'entrée est All Caps en raison de
SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
la source
Équivalent Xamarin de la réponse d'ErlVolton:
la source
Réalisation simple de kotlin
PS pour moi
filters
est toujours vide au départla source
Un Java 1-liner de la solution proposée pourrait être:
Notez qu'il a besoin
com.google.common.collect.Lists
.la source
Ajoutez simplement le code ci-dessous à votre EditText de votre fichier xml.
Et si vous souhaitez autoriser à la fois le texte en majuscules et les chiffres, utilisez le code ci-dessous.
la source