Désactiver l'autosuggest pour EditText?

y a-t-il un moyen de désactiver programmatiquement cette liste d'autosuggest qui apparaît lorsque vous tapez EditText?

94
demandé sur Ronak Thakkar 2009-12-24 23:01:53

11 réponses

j'avais la même question mais je voulais quand même mettre cette option dans mon fichier XML, donc j'ai fait un peu plus de recherche jusqu'à ce que je l'ai découvert moi-même.

Ajoutez cette ligne dans votre texte D'édition.

android:inputType="textFilter" 

voici un conseil. Cette ligne si vous voulez être en mesure d'utiliser la touche "entrée".

android:inputType="textFilter|textMultiLine"
102
répondu glr 2010-01-02 17:43:46
android:inputType="textNoSuggestions"  

vous devriez aussi lire ce

97
répondu kreker 2011-04-16 12:31:05
android:inputType="textVisiblePassword" 

fonctionne comme un charme

49
répondu Mr_Hmp 2013-07-01 12:44:01
  1. Programmant

    edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    
  2. XML

    android:inputType="textNoSuggestions|textVisiblePassword"
    
32
répondu Enzokie 2015-10-24 16:56:51

la méthode la plus fiable que j'ai trouvée pour me débarrasser de l'autocomplete est d'utiliser

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD 

sur votre contrôle EditText. Comme charlie a rapporté dans une réponse différente sur cette page,

android:inputType="textVisiblePassword"

est la version XML de ce drapeau.

vous pouvez combiner ce drapeau avec

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS

j'avais utilisé InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS without InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, qui fonctionnait pour la plupart des téléphones, mais ensuite je suis tombé sur un téléphone Samsung pour lequel je recevais encore autocomplete.

Android par programmation désactiver la saisie semi-automatique/autosuggest pour EditText dans l'émulateur

qui suggérait D'utiliser InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.

j'ai essayé ceci (avec InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) et it travaillé. Vous pouvez voir pourquoi même un téléphone qui pourrait ne pas comprendre l'allusion que vous ne voulez pas autocomplete aurait avoir pour lui permettre d'être désactivé pour un champ de mot de passe. À moins de retenir notre souffle, ce pourrait être la meilleure façon d'obtenir ce que nous voulons de tels téléphones.

sur certains de mes appareils, la police a été légèrement modifiée par ce drapeau - de façon à distinguer plus clairement un zéro (0) d'un Oh (O), ce qui serait évidemment important pour l'affichage un mot de passe. Mais au moins ça a marché, et la nouvelle police n'était pas déplaisante.

même si le post sur lequel j'ai trouvé cette suggestion était ancien, le téléphone que j'ai testé sur était très récent - un Samsung Galaxy Note II (SPH-L900) Android 4.1.2 de stock de Sprint. Le clavier choisi était "Samsung Keyboard", et apparemment c'était la valeur par défaut pour ce téléphone lorsque le client l'a reçu de Sprint. Il semble donc que ce problème ait persisté au fil des ans pendant au moins une partie de la période considérée. ligne de téléphone Samsung importante.

pour ceux d'entre vous qui, comme moi, n'ont pas de Samsung test device, cela pourrait être une information importante.

14
répondu Carl 2017-05-23 11:33:26

Comme c'est encore un problème, je vais les poster cette réponse. android:inputType= "textVisiblePassword" fonctionne, mais il est indésirable, d'abord parce que c'est une représentation erronée de l'entrée et la seconde parce qu'il désactive gestuelle Dactylographie!

à la place, j'ai dû utiliser les deux options textNoSuggestions et textFilter. Un seul n'a pas de travail.

android:inputType="textCapSentences|textFilter|textNoSuggestions"

La textCapSentences était pour d'autres raisons. Mais ce type d'entrée a gardé la frappe par balayage et désactivé la barre d'outils de suggestion.

7
répondu Tariq 2015-08-17 18:08:13

OK, le problème était-dans Eclipse vous ne recevez pas de suggestion pour le drapeau nommé: textnosugggestion

et vous ne pouvez pas le mettre dans le main.xml (où vous concevez L'UI) parce que cet attribut pour inputType n'est pas reconnu. Vous pouvez donc le définir en code en utilisant int const:

EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);

Et merci jasta00 pour m'aider à la figure réponse pour celui-ci.

3
répondu kape123 2018-09-07 06:54:51

j'ai eu ce truc sur les téléphones de samsung qui fonctionnait à 4.4.4. Cela a résolu mon problème

android:inputType="text|textVisiblePassword|textNoSuggestions"
2
répondu Ajji 2016-07-20 13:55:08
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

cela vous aidera.

1
répondu Thomas V J 2012-05-14 09:18:35

vous pouvez simplement utiliser la méthode setThreshold() D'EditText. Définissez le seuil à disons 100 quand vous ne voulez pas montrer des prédictions. Si vous voulez réactiver montrant des prédictions, mis à dos une petite int comme 1 ou 2 selon vos besoins.

0
répondu kaolick 2013-02-19 17:04:42
android:inputType="text|textNoSuggestions"
0
répondu Michael Peterson 2015-03-04 19:01:04