Empêcher l'utilisateur d'insérer plus de caractères après que la limite de taille est atteinte dans la zone EditText

Je souhaite empêcher l'utilisateur d'insérer plus de lettres qu'une certaine quantité dans une boîte de dialogue d'alerte contenant une instance Edit-text. J'essaie d'utiliser le filtre d'entrée. Length Filter, mais qui affiche uniquement la chaîne jusqu'à la longueur demandée. L'utilisateur peut toujours écrire plus de caractères, et quand j'essaie de supprimer des caractères par exemple, rien ne se produit jusqu'à ce que je supprime suffisamment de caractères pour que le mot soit plus court que la limite (le clavier similaire se souvient des touches).

EDIT: Pour être plus clair, j'ai déjà essayé d'utiliser InputFilter. Cela impose en effet une taille de chaîne passée au EditText, mais comme je l'ai dit, je peux continuer à écrire des lettres avec le clavier qui ne sont pas affichées dans la zone de texte. Lorsque je touche à supprimer, il supprime les lettres supplémentaires d'abord et seulement après avoir supprimé suffisamment de lettres, je commence à voir les lettres dans la suppression de la zone de texte. Mon scénario demandé: définissez la limite de chaîne à 10. Accédez à 15 caractères dans mon clavier. Ensuite, appuyez sur l'espace arrière et voir la dernière lettre dans la zone de texte, soit supprimé. J'espère que cela est plus clair maintenant.

Quelqu'un peut-il aider?

  • Problème de discussion avec plusieurs EditTexts
  • Android getText du champ EditText
  • Curseur EditText en haut à gauche.
  • Étiquette dans une zone d'édition dans Android
  • Désactiver le bouton lorsque les champs de texte sont vide
  • Vibration d'Edittext dans Android
  • Edittext modifie la couleur de bordure avec shape.xml
  • Comment limiter la durée de l'édition à 7 nombres entiers et 2 décimales?
  • 5 Solutions collect form web for “Empêcher l'utilisateur d'insérer plus de caractères après que la limite de taille est atteinte dans la zone EditText”

    Probablement c'est tard mais si quelqu'un a le même problème.

    Dans la mise en page:

    android:inputType="textNoSuggestions|textVisiblePassword" android:maxLength="20" 

    Programmatiquement:

     setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 

    Vous pouvez utiliser la propriété suivante de EditText dans AndroidManifest.xml

     android:maxLength="8" 

    Maintenant, l'utilisateur ne peut pas ajouter plus de 8 caractères dans EditText.

    Vous pouvez également définir cette propriété au moment de l'exécution en assignant

     youredittext.setMaxLength(8); 

    Vous avez dit que vous disposiez de votre boîte de dialogue d'édition de texte dans la boîte de dialogue d'alerte, définissez-le à l'exécution et essayez.

    REGARDE ÇA

     TextView editEntryView = new TextView(...); InputFilter[] filterArray = new InputFilter[1]; filterArray[0] = new InputFilter.LengthFilter(8); editEntryView.setFilters(filterArray); 

    Voir cette réponse pour une solution de contournement partielle: https://stackoverflow.com/a/19222238/933656

    Vous pourrez supprimer immédiatement le dernier caractère du EditText car il n'y a pas de prévisualisation pour le clavier (en supposant que tous les claviers tiers respectent le drapeau textNoSuggestions ). Le seul problème est que vous perdez le texte de la suggestion.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.