Réponses:
J'avais la même question mais je voulais toujours définir cette option dans mon fichier XML, alors j'ai fait un peu plus de recherche jusqu'à ce que je le découvre moi-même.
Ajoutez cette ligne dans votre EditText.
android:inputType="textFilter"
Voici un conseil. Utilisez cette ligne si vous souhaitez pouvoir utiliser la touche «entrée».
android:inputType="textFilter|textMultiLine"
android:inputType="textPersonName"
par le texte suggéré mais il affiche toujours la ligne de suggestion (avec l'icône du micro).
android:inputType="textNoSuggestions"
aussi tu ferais mieux de lire ceci
android:inputType="textVisiblePassword"
fonctionne comme un charme
.
point ajouté à la fin du mot si deux espaces sont tapés après ce mot. Je l'ai utilisé pour la barre d'action searchView ((SearchView) MenuItemCompat.getActionView(searchItem)) .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Façons de le faire:
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
android:inputType="textNoSuggestions"
Si vous avez déjà défini des indicateurs, alors:
inputType = if (disableSuggestions) {
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or inputType
} else {
inputType and InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS.inv()
}
android:inputType="textNoSuggestions|textPassword"
L'approche la plus fiable que j'ai trouvée pour me débarrasser de la saisie semi-automatique est d'utiliser
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
sur votre contrôle EditText. Comme Charlie l'a signalé dans une réponse différente sur cette page,
android:inputType="textVisiblePassword"
est la version XML de cet indicateur.
Vous pouvez combiner ce drapeau avec
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
J'avais utilisé InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS sans InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, qui fonctionnait pour la plupart des téléphones, mais je suis ensuite tombé sur un téléphone Samsung pour lequel je recevais toujours la saisie semi-automatique.
qui a suggéré d'utiliser InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.
J'ai essayé ceci (avec InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) et cela a fonctionné. Vous pouvez voir pourquoi même un téléphone qui pourrait ne pas prendre l'allusion au fait que vous ne voulez pas autocomplete serait que pour lui permettre d'être désactivé pour un champ de mot de passe. À court de retenir notre souffle, cela pourrait être le meilleur moyen d'obtenir ce que nous attendons de ces téléphones.
Sur certains de mes appareils, la police a été légèrement modifiée par ce drapeau - surtout pour distinguer plus clairement un zéro (0) d'un Oh (O), ce qui serait évidemment important pour afficher un mot de passe. Mais au moins, cela a fonctionné, et la nouvelle police n'était pas sans intérêt.
Même si le post sur lequel j'ai trouvé cette suggestion était ancien, le téléphone sur lequel j'ai testé était très récent - un Samsung Galaxy Note II (SPH-L900) stock Android 4.1.2 de Sprint. Le clavier sélectionné é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. Donc, ce problème a apparemment persisté au fil des ans pour au moins une partie de la gamme importante de téléphones Samsung.
Pour ceux d'entre vous qui, comme moi, ne disposent pas d'un appareil de test Samsung, cela pourrait être une information importante.
Pour la version Android 8.0 ou supérieure, ce code ne fonctionne pas et pour le texte de saisie semi-automatique, ce code ne fonctionne pas non plus, je vous suggérerai donc d'utiliser le code ci-dessous pour désactiver les suggestions automatiques dans la version 8.0 ou supérieure d'Android, utilisez cette propriété d'edittext android: importantForAutofill = "non"
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:focusable="false"
android:imeOptions="actionDone"
android:maxLength="80"
android:maxLines="1"
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorBlack"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp"
app:bFontsEdt="light" />
et pour le texte de saisie semi-automatique comme celui-ci, utilisez ce champ pour désactiver la suggestion automatique android: importantForAutofill = "no" :
<AutoCompleteTextView
android:id="@+id/autocompleteEditTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_3sdp"
android:layout_marginTop="@dimen/_5sdp"
android:background="@null"
android:imeOptions="actionDone"
android:singleLine="true"
android:text=""
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorGrayDark"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp" />
Vous pouvez résoudre ce problème en utilisant ceci:
android:importantForAutofill="no"
Android O a la fonctionnalité de prendre en charge le remplissage automatique des champs, utilisez simplement ceci dans votre xml, cela désactivera les conseils de remplissage automatique
Comme c'est toujours un problème, je vais publier cette réponse. android: inputType = "textVisiblePassword" fonctionne mais ce n'est pas souhaitable, d'abord parce que c'est une fausse déclaration de l'entrée et ensuite parce qu'il désactive la saisie gestuelle!
Au lieu de cela, j'ai dû utiliser LES DEUX drapeaux textNoSuggestions et textFilter. L'un ou l'autre seul ne fonctionnait pas.
android:inputType="textCapSentences|textFilter|textNoSuggestions"
Le textCapSentences était pour d'autres raisons. Mais ce inputType a conservé la saisie par balayage et désactivé la barre d'outils de suggestion.
J'obtenais cette chose sur les téléphones Samsung fonctionnant sous 4.4.4. Cela a résolu mon problème
android:inputType="text|textVisiblePassword|textNoSuggestions"
OK, le problème était - dans Eclipse, vous n'obtenez pas de suggestion pour le drapeau nommé: textNoSuggestion
Et vous ne pouvez pas le définir dans main.xml (où vous concevez l'interface utilisateur) car cet attribut pour inputType n'est pas reconnu. Vous pouvez donc le définir dans le code en utilisant int const:
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
Et merci jasta00 de m'avoir aidé à trouver la réponse pour celui-ci.
android:inputType="text|textNoSuggestions"
// 100% correct & tested
txtKey = (EditText) view.findViewById(R.id.txtKey);
txtKey.setPrivateImeOptions("nm");
txtKey.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
txtKey.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
}
Vous pouvez simplement utiliser la setThreshold()
méthode EditText . Définissez le seuil sur 100, par exemple, lorsque vous ne souhaitez pas afficher de prédictions. Si vous souhaitez réactiver l'affichage des prédictions, réglez-le sur un petit int comme 1 ou 2 en fonction de vos besoins.